web攻擊技術
- XSS攻擊
- CSRF攻擊
- 網絡劫持攻擊
- 控制檯注入代碼
- 釣魚
XSS攻擊(cross-site script)
1、XSS攻擊形式:
主要是通過html標籤注入,篡改網頁,插入惡意的腳本,前端可能沒有經過嚴格的校驗直接就進到數據庫,數據庫又通過前端程序又回顯到瀏覽器
2、攻擊的目的:
攻擊者可通過這種方式拿到用戶的一些信息,例如cookie 獲取敏感信息,甚至自己建網站,做一些非法的操作等;或者,拿到數據後以用戶的身份進行勒索,發一下不好的信息等。
3、攻擊防禦
首先前端要對用戶輸入的信息進行過濾,可以用正則,通過替換標籤的方式進行轉碼或解碼
例如<> 空格 & ‘’ ""等替換成html編碼
htmlEncodeByRegExp:function (str){
var s = "";
if(str.length == 0) return "";
s = str.replace(/&/g,"&");
s = s.replace(/</g,"<");
s = s.replace(/>/g,">");
s = s.replace(/ /g," ");
s = s.replace(/\'/g,"'");
s = s.replace(/\"/g,""");
return s;
},
其次在java後端還要進行安全防禦,具體可以看一下這個http://blog.csdn.net/qq_34120041/article/details/76890092
CSRF攻擊(cross site request forgery,跨站請求僞造)
CSRF也是一種網絡攻擊方式,比起xss攻擊,是另外一種更具危險性的攻擊方式,xss是站點用戶進行攻擊,而csrf是通過僞裝成站點用戶進行攻擊,而且防範的資源也少,難以防範
csrf攻擊形式:攻擊者盜用用戶的身份信息,並以用戶的名義進行發送惡意的請求等,例如發郵件,盜取賬號等非法手段
例如:你登錄網站,並在本地種下了cookie
.
如果在沒退出該網站的時候 不小心訪問了惡意網站,而且這個網站需要你發一些請求等
此時,你是攜帶cookie進行訪問的,那麼你的重在cookie裏的信息就會被惡意網站捕捉到,那麼你的信息就被盜用,導致一些不法分子做一些事情
攻擊防禦:
1、驗證HTTP Referer字段
在HTTP頭中有Referer字段,他記錄該HTTP請求的來源地址,如果跳轉的網站與來源地址相符,那就是合法的,如果不符則可能是csrf攻擊,拒絕該請求
2、在請求地址中添加token並驗證
這種的話在請求的時候加一個token,值可以是隨機產生的一段數字,
token是存入數據庫之後,後臺返給客戶端的,如果客戶端再次登錄的時候,
後臺發現token沒有,或者通過查詢數據庫不正確,那麼就拒絕該請求
.
如果想防止一個賬號避免在不同的機器上登錄,那麼我們就可以通過token來判斷,
如果a機器登錄後,我們就將用戶的token從數據庫清除,從新生成,
那麼另外一臺b機器在執行操作的時候,token就失效了,只能重新登錄,這樣就可以防止兩臺機器登同一賬號
3、在HTTP頭中自定義屬性並驗證
如果說通過每次請求的時候都得加token那麼各個接口都得加很麻煩,
那麼我們通過http的請求頭來設置token
例如:
$.ajax({
url: '/v1/api',
dataType: 'json',
data: param,
type:'post',
headers: {'Accept':'application/json','Authorization':tokenValue}
success:function(res){
console.log(res)
}
})
網絡劫持攻擊
網絡劫持攻擊這種攻擊主要是通過一些代理服務器,或者wifi等有中間件的網絡請求,進行劫持,不法分子通過這種方式獲取到用戶的信息,那麼我們該怎麼防禦呢?
最好是採用https進行加密,這種通過請求網絡地址攻擊的我們可以通過對http進行加密,來防範,這樣不法分子即使或得到,也無法解密
控制檯注入代碼
這種就是不法分子通過各種提示誘騙用戶在控制檯做一些操作,從而獲取用戶信息,那麼我們最好在控制檯對用戶進行友好的提示,必要輕易相信這種提示燈。
釣魚
釣魚!一個傳統的攻擊方式,也是通過人性的弱點來誘騙用戶登錄一些不法網站,我們要科學上網,不要被釣…