如何防範網站的XSS攻擊,如果使用htmlspecialchars()函式防範html和css程式碼可以防範成功!但是對JS程式碼攻擊不起作用。該如何全面防範那?
請看下面小編的圖文演示操作;
工具/原料
電腦,瀏覽器,XSS,程式碼編輯器,TP框架,PHP
一、防範XSS攻擊前首先要了解什麼是XSS:
1. 什麼是XSS攻擊?
網站form表單收集資料的時候,有的使用者非法/惡意的把”html/css/js”程式碼內容給植入到form表單域中,進而給儲存到資料庫裡邊了,這種植入靜態程式碼到表單的行為就是XSS攻擊。
一個網站如果有10個form表單,為了使用者體驗比較好,只給其中兩個比較重要的form表單設定“表單驗證”功能,其他8個form表單,任由使用者隨意的填寫喜歡的資訊。
那麼這8個form表單就給使用者機會形成xss攻擊。
2.給XSS攻擊形成的條件。
3.植入JS程式碼,形成XSS攻擊。
4.頁面每次請求展示,都有一個彈出框,XSS攻擊效果體現出來了。
5.形成XSS攻擊,通過CSS樣式內容進行攻擊。
6.XSS攻擊效果。
二、使用htmlspecialchars()函式防範效果:
1. 普通表單域
2.
通過上圖,xss攻擊的原理:
直接把原生的html程式碼給儲存到資料庫裡邊去了
這個原生html程式碼 在瀏覽器裡邊是要被解析執行的,一執行 xss攻擊效果就有體現
防範之一:
可以把原生的html程式碼給變為符號實體儲存
在php中有htmlspecialchars()函式可以把”<” ”>”符號變為符號實體
3.
在tp框架中做xss攻擊可以通過create方法實現資料收集,就自動防止xss攻擊了
create()------>I()------->htmlspecialchars()
4.進行測試新增商品,用XSS攻擊網站。
5.新增商品後,回到商品頁面看都XSS攻擊失效了。說明htmlspecialchars()函式防範成功。
6.是因為HTML程式碼變成符號實體儲存到了資料庫。
三、使用JS程式碼攻擊htmlspecialchars()函式:
1.試圖XSS攻擊。但是攻擊失敗。
2.XSS攻擊的失敗原因分析。
3.通過JS“原始碼”再次發起攻擊:
4.把標籤再給點選回來。
5.標籤沒有被"符號實體"轉化,XSS攻擊成功。這說明:htmlspecialchars()函式
防範失敗!
四、使用htmlpurifier外掛全面防範xss攻擊:
1.首先去下載htmlpurifier外掛。
2.把下載好的htmlpurifier外掛進行解壓。解壓到Library目錄並改名字。注意:是TP框架中的Library目錄。
3.引入htmlpurifier到專案中。
4.進行程式碼編寫,程式碼引入。
1).把htmlpurifier的實體功能,通過函式給體現出來。
2).對收集到的編輯器內容進行過濾處理,防止XSS程式碼攻擊。
5.再次發起xss攻擊,看看htmlpurifier外掛的防範效果。通過下圖測試說明防範XSS攻擊成功。說明htmlpurifier外掛防範是有效的。
原因分析:資料庫沒有出現script標籤,說明“htmlpurifier”起作用了其把script標籤直接刪除了。
五、總結:
1. 富文字編輯器使用
a) 引入3個js檔案
b) 製作textarea標籤
c) 執行一段編輯器對應的js程式碼
編輯器核心程式碼:javascript+php
編輯器功能按鈕做增減設定
2. 防止xss攻擊
create() / I() / htmlspecialchars()
① 普通表單域 create()
② 富文字編輯器 htmlpurifier
3.通過引入htmlpurifier外掛起到了全面防範XSS攻擊效果。
做網站的朋友可以引入htmlpurifier外掛試試。希望能幫助到大家。