前端工程師面試必考Web網絡安全之 XXS腳本攻擊示例及防禦措施


前端工程師面試必考Web網絡安全之 XXS腳本攻擊示例及防禦措施

什麼是XSS腳本攻擊

XSS全名:Cross-Site-Scripting, 理論上縮小應該為 CSS 但為了和 CSS(層疊樣式表)進行區分,改了個名字叫XSS.

XSS攻擊通常指的是通過利用網頁開發時留下的漏洞,通過巧妙的方法注入惡意指令代碼到網頁,使用戶加載並執行攻擊者惡意製造的網頁程序。這些惡意網頁程序通常是JavaScript,但實際上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻擊成功後,攻擊者可能得到包括但不限於更高的權限(如執行一些操作)、私密網頁內容、會話和cookie等各種內容

xss腳本攻擊原理

HTML是一種超文本標記語言,通過將一些字符特殊地對待來區別文本和標記,例如,小於符號(與之間的字符是頁面的標題等等。當動態頁面中插入的內容含有這些特殊字符(如

xss腳本攻擊特點

與釣魚攻擊相比,XSS攻擊所帶來的危害更大,通常具有如下特點:

①由於XSS攻擊在用戶當前使用的應用程序中執行,用戶將會看到與其有關的個性化信息,如賬戶信息或“歡迎回來”消息,克隆的Web站點不會顯示個性化信息。

②通常,在釣魚攻擊中使用的克隆Web站點一經發現,就會立即被關閉。

③許多瀏覽器與安全防護軟件產品都內置釣魚攻


前端工程師面試必考Web網絡安全之 XXS腳本攻擊示例及防禦措施

若我們在評論裡輸入了一段可執行的javascr,讓他彈出 OK,當把評論提交後,如果沒有網站沒有做字符的過濾處理的話,那麼我們提交的腳本就會加載到頁面裡,但是別忘了他是一個JS的alert方法,然後大家一打開評論頁面就會彈出 OK.

可能的幾種XSS注入方式

  • alert(String.fromCharCode(88,83m83)) 通過獲取字母的ASCII碼來規避網站的過濾。
  • 通過img標籤來達到攻擊的目的,
  • <link>通過樣式表注入
  • 通過style方式注入

XSS腳本攻擊防禦方式:

  • 不信任用戶提交的任何內容,對所有用戶提交內容進行可靠的輸入驗證,包括對URL、查詢關鍵字、HTTP頭、REFER、POST數據等,僅接受指定長度範圍內、採用適當格式、採用所預期的字符的內容提交,對其他的一律過濾。儘量採用POST而非GET提交表單;對“”,“;”,“””等字符做過濾;任何內容輸出到頁面之前都必須加以en-code,避免不小心把htmltag顯示出來。
  • 實現Session 標記(session tokens)、驗證碼系統或者HTTP引用頭檢查,以防功能被第三方網站所執行,對於用戶提交信息的中的img等link,檢查是否有重定向回本站、不是真的圖片等可疑操作。
  • cookie 防盜。避免直接在cookie中洩露用戶隱私,例如email、密碼,等等;通過使cookie和系統IP綁定來降低cookie洩露後的危險。這樣攻擊者得到的cookie沒有實際價值,很難拿來直接進行重放攻擊。
  • 確認接收的內容被妥善地規範化,僅包含最小的、安全的Tag(沒有JavaScript),去掉任何對遠程內容的引用(尤其是樣式表和JavaScript),使用HTTPonly的cookie。





分享到:


相關文章: