WEB網站常見攻擊
1. header name和value中出現CRLF字符
在header中嵌入CRLF(回車換行)字符是一種常見的攻擊手段。攻擊者嵌入CRLF以后,使服務器對HTTP請求發生錯誤判斷,從而執行攻擊者的惡意代碼。事實上,現在的servlet引擎如tomcat已經可以防御這種攻擊。
- status message嵌入惡意代碼</h3>
通常status message會被顯示在HTML頁面中。攻擊者可以利用這一點在頁面中嵌入惡意代碼。將status message以HTML entity編碼重寫以后,就可以避免這個問題。
3. cookie過大
過大的cookie可能使WEB服務器拒絕響應請求。攻擊者同樣可以
利用這一點使用戶無法正常訪問網站。限制cookie的總大小可以部分地解決這種危機。
4. XSS攻擊(跨站腳本攻擊)
惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如
同源策略(same origin
policy)。這種類型的漏洞由于被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新
型的“緩沖區溢出攻擊“,而JavaScript是新型的“ShellCode”。
5.CSRF攻擊(跨站請求偽造)
攻擊者通過各種方法偽造一個請求,模仿用戶提交表單的行為,從而達到修改用戶的數據,或者執行特定任務的目的。為了假冒用戶的身份,CSRF攻擊常常和XSS攻擊配合起來做,但也可以通過其它手段,例如誘使用戶點擊一個包含攻擊的鏈接。
解決方案:
1,通過CSRF token,可以確保該請求確實是用戶本人填寫表單并提交的,而不是第三者偽造的,從而避免CSRF攻擊。CSRF token驗證器是用來確保表單中包含了CSRF token。
2,執行重要業務之前,要求用戶提交額外的信息。要求用戶在進行重要業務前輸入口令,這可以防止黑客發動CSRF攻擊(只要瀏覽器中沒有包含口令),因為這種重要信息無法預測或輕易獲得。
通常status message會被顯示在HTML頁面中。攻擊者可以利用這一點在頁面中嵌入惡意代碼。將status message以HTML entity編碼重寫以后,就可以避免這個問題。
3. cookie過大
過大的cookie可能使WEB服務器拒絕響應請求。攻擊者同樣可以
利用這一點使用戶無法正常訪問網站。限制cookie的總大小可以部分地解決這種危機。
4. XSS攻擊(跨站腳本攻擊)
惡意web用戶將代碼植入到提供給其它用戶使用的頁面中。比如這些代碼包括HTML代碼和客戶端腳本。攻擊者利用XSS漏洞旁路掉訪問控制——例如 同源策略(same origin policy)。這種類型的漏洞由于被駭客用來編寫危害性更大的phishing攻擊而變得廣為人知。對于跨站腳本攻擊,黑客界共識是:跨站腳本攻擊是新 型的“緩沖區溢出攻擊“,而JavaScript是新型的“ShellCode”。
5.CSRF攻擊(跨站請求偽造)
攻擊者通過各種方法偽造一個請求,模仿用戶提交表單的行為,從而達到修改用戶的數據,或者執行特定任務的目的。為了假冒用戶的身份,CSRF攻擊常常和XSS攻擊配合起來做,但也可以通過其它手段,例如誘使用戶點擊一個包含攻擊的鏈接。
解決方案:
1,通過CSRF token,可以確保該請求確實是用戶本人填寫表單并提交的,而不是第三者偽造的,從而避免CSRF攻擊。CSRF token驗證器是用來確保表單中包含了CSRF token。
2,執行重要業務之前,要求用戶提交額外的信息。要求用戶在進行重要業務前輸入口令,這可以防止黑客發動CSRF攻擊(只要瀏覽器中沒有包含口令),因為這種重要信息無法預測或輕易獲得。
3,使用秘密的無法預測的驗證符號。當保存在用戶瀏覽器中的cookie僅由一次會話確認時,CSRF攻擊才會有效。所以在每次HTTP請求(當然攻擊者
無法提前知道)中都有附加的特定會話的信息,這樣就可以挫敗CSRF攻擊。不過,如果這種應用程序存在跨站腳本漏洞,黑客就有可能訪問這種驗證符號。
4,使用定制的HTTP報頭。如果執行交易的所有請求都使用XMLHttpRequest并附加一個定制的HTTP報頭,同時拒絕缺少定制報頭的任何請
求,就可以用XMLHttpRequest
API來防御CSRF攻擊。由于瀏覽器通常僅準許站點將定制的HTTP報頭發送給相同站點,從而了防止由CSRF攻擊的源站點所發起的交易。
5,檢查訪問源的報頭。在瀏覽者發送HTTP請求時,它通常會包含源自訪問源報頭的URL。理論上講,你可以使用這些信息來阻止源自其它任何站點(而不是 來自Web應用程序自身)的請求。不過,訪問源報頭并不總是可用的,(例如,有些單位由于私密性的緣故而將它剝離了),或者這個報頭容易被欺騙,所以說, 這條措施并不真正有效。</p>
6. SQL注入
就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令