1. 程式人生 > >前端常見攻擊以及安全措施

前端常見攻擊以及安全措施

shee 有效 class 服務器 安全漏洞 資源 內置 得到 asc

1.xss

跨站腳本攻擊(Cross Site Scripting),為了不和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫為XSS。惡意攻擊者往Web頁面裏插入惡意Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。如某視頻網站。

防護:

1. 輸入過濾

  對用戶的所有輸入數據進行檢測,比如過濾其中的“<”、“>”、“/”等可能導致腳本註入的特殊字符,或者過濾“script”、“javascript”等腳本關鍵字,或者對輸入數 據的長度進行限制等等。同時,我們也要考慮用戶可能繞開    ASCII碼,使用十六進制編碼來輸入腳本。因此,對用戶輸入的十六進制編碼,我們也要進行 相應的過濾。只要能夠嚴格檢測每一處交互點,保證對所有用戶可能的輸入都進行檢測和XSS過濾,就能夠有效地阻止XSS攻擊。

  2. 輸出編碼

  通過前面對XSS攻擊的分析,我們可以看到,之所以會產生XSS攻擊,就是因為Web應用程序將用戶的輸入直接嵌入到某個頁面當中,作為該頁面的HTML 代碼的一部分。因此,當Web應用程序將用戶的輸入數據輸出到目標    頁面中時,只要用HtmlEncoder等工具先對這些數據進行編碼,然後再輸出到目標 頁面中。這樣,如果用戶輸入一些HTML的腳本,也會被當成普通的文字,而不會成為目標頁面HTML代碼的一部分得到執行。

  3. Cookie防盜

    利用XSS攻擊,攻擊者可以很方便地竊取到合法用戶的Cookie信息。因此,對於Cookie,我們可以采取以下的措施。首先,我們要盡可能地避免在Cookie中 泄露隱私,如用戶名、密碼等;其次,我們可以將Cookie信息利用MD5等Hash算法進行多次散列後存放;再次,為了防止重放攻擊,我們也可以將Cookie和IP 進行綁定,這樣也可以阻止攻擊者冒充正常用戶的身份。

2.Ddos

分布式拒絕服務(DDoS:Distributed Denial of Service)攻擊指借助於客戶/服務器技術,將多個計算機聯合起來作為攻擊平臺,對一個或多個目標發動DDoS攻擊,從而成倍地提高拒絕服務攻擊的威力。通常,攻擊者使用一個偷竊帳號將DDoS主控程序安裝在一個計算機上,在一個設定的時間主控程序將與大量代理程序通訊,代理程序已經被安裝在網絡上的許多計算機上。代理程序收到指令時就發動攻擊。利用客戶/服務器技術,主控程序能在幾秒鐘內激活成百上千次代理程序的運行。

3.CSRF

CSRF(Cross-site request forgery)跨站請求偽造,也被稱為“One Click Attack”或者Session Riding,通常縮寫為CSRF或者XSRF,是一種對網站的惡意利用。盡管聽起來像跨站腳本(XSS),但它與XSS非常不同,XSS利用站點內的信任用戶,而CSRF則通過偽裝來自受信任用戶的請求來利用受信任的網站。與XSS攻擊相比,CSRF攻擊往往不大流行(因此對其進行防範的資源也相當稀少)和難以防範,所以被認為比XSS更具危險性。

1.驗證碼

    幾乎所有人都知道驗證碼,但驗證碼不單單用來防止註冊機的暴力破解,還可以有效防止CSRF的攻擊。驗證碼算是對抗CSRF攻擊最簡潔有效的方法。但使 用驗證碼的問題在於,不可能在用戶的所有操作上都需要輸入驗證碼.只有一些關鍵的操作,才能要求輸入驗證碼。不過隨著HTML5的發展。利用canvas標簽,前 端也能識別驗證碼的字符,讓CSRF生效。

  2.Token

    CSRF能攻擊成功,根本原因是:操作所帶的參數均被攻擊者猜測到。既然知道根本原因,我們就對癥下藥,利用Token。當向服務器傳參數時,帶上 Token。這個Token是一個隨機值,並且由服務器和用戶同時持有。當用戶提交表單時帶上Token值,服務器就能驗證表單和session中的Token是否一致。

4.SQL註入

所謂SQL註入,就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意的)SQL命令註入到後臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。比如先前的很多影視網站泄露VIP會員密碼大多就是通過WEB表單遞交查詢字符暴出的,這類表單特別容易受到SQL註入攻擊.

防護:參數化查詢已被視為最有效的可防禦SQL註入攻擊的防禦方式。目前主流的ORM 框架都內置支持並且推薦使用這種方式進行持久層封裝。

前端常見攻擊以及安全措施