前端解決惡意訪問的幾個方法

一、XSS

【Cross Site Script】跨站腳本攻擊
惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。

防禦方法:

1.過濾關鍵字:script javascript等

 /**
     * [hasIllegalChar 判斷是否含有script非法字符]
     * @param  {[type]}  str [要判斷的字符串]
     * @return {Boolean}     [true:含有,驗證不通過;false:不含有,驗證通過]
     */
 function hasIllegalChar(str) {
     return new RegExp(".*?script[^>]*?.*?(<\/.*?script.*?>)*", "ig").test(str);
 }

2.限制輸入,規定輸入的只能是某些格式的數據

/**
將含有<>等符號轉化爲其他字符簡單方便

**/
function safeStr(str){
return str.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g, "&quot;").replace(/'/g, "&#039;");
}

二、 CSRF

【Cross Site Request Forgery】站點僞造請求
跨站點參考僞造通過在訪問用戶被認爲已經通過身份驗證的Web應用程序的頁面中包含惡意代碼或鏈接來工作。 如果該Web應用程序的會話沒有超時,攻擊者可能執行未授權的命令。

防禦方法:

1.在請求地址中添加 token 並驗證

2.在HTTP 頭中自定義屬性並驗證

3.驗證 HTTP Referer 字段 ;

(Http協議頭中的Referer主要用來讓服務器判斷來源頁面, 即用戶是從哪個頁面來的,通常被網站用來統計用戶來源,是從搜索頁面來的,還是從其他網站鏈接過來,或是從書籤等訪問,以便網站合理定位.Referer有時也被用作防盜鏈, 即下載時判斷來源地址是不是在網站域名之內, 否則就不能下載或顯示,很多網站,如天涯就是通過Referer頁面來判斷用戶是否能夠下載圖片.)

三、SQL注入

用戶可以提交一段數據庫查詢代碼,根據程序返回的結果,獲得某些他想得知的數據。

防禦方法:

1.採用sql語句預編譯和綁定變量,是防禦sql注入的最佳方法。採用JDBC的預編譯語句集,它內置了處理SQL注入的能力,只要使用它的setXXX方法傳值即可。
2.使用正則表達式來過濾一些sql關鍵字,如or、where等。

四、文件上傳攻擊

防禦方法:

文件上傳的目錄設置爲不可執行。
判斷文件類型。在判斷文件類型的時候,可以結合使用MIME Type,後綴檢查等方式。因爲對於上傳文件,不能簡單地通過後綴名稱來判斷文件的類型,因爲攻擊者可以將可執行文件的後綴名稱改爲圖片或其他後綴類型,誘導用戶執行。
對上傳的文件類型進行白名單校驗,只允許上傳可靠類型。
上傳的文件需要進行重新命名,使攻擊者無法猜想上傳文件的訪問路徑,將極大地增加攻擊成本。
限制上傳文件的大小。
單獨設置文件服務器的域名。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章