今天小編給大家說說前端常見一些安全問題及解決方案,有興趣的小伙伴可以了解一下!
一、CSRF安全漏洞
CSRF是通過仿造客戶端的請求獲取信息的,對於jsonp的請求,客戶端確實可以仿造,但是因為對於ajax的請求,有同源策略限制,已經做了域名過濾,所以一般不會有問題。
解決方案:
1、檢查報頭中的referer參數確保請求發自正確的網站
(但XHR請求課調用setRequestHeader方法來修改Referer報頭)
2、對於任何重要的請求都需要重新驗證用戶的身份;
3、創建一個唯一的令牌(token),將其存在服務端的session中及客戶端的cookie中,
對任何請求, 都檢查二者是否一致。
二、XSS安全漏洞
通過URL帶入的,這種帶入主要是前端解析url中的參數,並對數參數執行了innerHTML 或者 html 或者 append 操作。在將參數html()或者append()到html文件中時,會執行其中的js代碼,被錯誤用戶獲取到cookie等信息。
示例:
原始鏈接 : https://xx.xxx.com/efly.html?link=cc 被XSS注入以后的鏈接 : https://xx.xxx.com/efly.html?link=eeec<img src=1 onerror=alert(document.cookie)>
解決
使用正則匹配去除某些字符串、過濾域名 function filterXss(str, regExp){ // let regex = /<(\S*?)[^>]*>.*?|<.*? \/>/gi; // 去除包含<>內容的,防止xss漏洞 let filterValue = str.replace(/<.*?>/g,''); // 去除<開頭類型的xss漏洞 filterValue = str.replace(/<+.*$/g,''); if(regExp && !regExp.test(filterValue)){ filterValue = ''; } return filterValue; }
本期內容就到這里,下期我們再來討論一下別的話題哈~