1、CSRF攻擊:
CSRF(Cross-site request forgery):跨站請求偽造。
(1)、攻擊原理:
如上圖,在B網站引誘用戶訪問A網站(用戶之前登錄過A網站,瀏覽器 cookie 緩存了身份驗證信息),
通過調用A網站的接口攻擊A網站。
(2)、防御措施:
1)token驗證:登陸成功后服務器下發token令牌存到用戶本地,再次訪問時要主動發送token,瀏覽器只能主動發cookie,做不到主動發token
2)referer驗證:判斷頁面來源是否自己站點的頁面,不是不執行請求
3)隱藏令牌: 令牌放在http header頭中,而不是鏈接中
2、XSS 攻擊:
XSS(Cross Site Scripting):跨域腳本攻擊。
(1)、攻擊原理:
不需要你做任何的登錄認證,它會通過合法的操作(比如在url中輸入、在評論框中輸入),向你的頁面注入腳本(可能是js、html代碼塊等)。
(2)、防御措施:
令xss無法攻擊,比如對注入的東西進行轉義、編碼、過濾、校正等。
3、區別:
CSRF:需要用戶先登錄網站A,獲取 cookie。XSS:不需要登錄。
CSRF:是利用網站A本身的漏洞,去請求網站A的api。XSS:是向網站 A 注入 JS代碼,然后執行 JS 里的代碼,篡改網站A的內容。