問題1:跨站腳本(XSS)的一些問題,主要漏洞證據: <script>alert('gansir')</script>,對於這個問題怎么解決?
(測試應當考慮的前端基礎攻擊問題)
方案一:
一、 過濾用戶輸入的內容,檢查用戶輸入的內容中是否有非法內容。如<>(尖括號)、"(引號)、 '(單引號)、%(百分比符號)、;(分號)、()(括號)、&(& 符號)、+(加號)等。
二、嚴格控制輸出
可以利用下面這些函數對出現xss漏洞的參數進行過濾
1、htmlspecialchars() 函數,用於轉義處理在頁面上顯示的文本。
2、htmlentities() 函數,用於轉義處理在頁面上顯示的文本。
3、strip_tags() 函數,過濾掉輸入、輸出里面的惡意標簽。
4、header() 函數,使用header("Content-type:application/json"); 用於控制 json 數據的頭部,不用於瀏覽。
5、urlencode() 函數,用於輸出處理字符型參數帶入頁面鏈接中。
6、intval() 函數用於處理數值型參數輸出頁面中。
7、自定義函數,在大多情況下,要使用一些常用的 html 標簽,以美化頁面顯示,如留言、小紙條。那么在這樣的情況下,要采用白名單的方法使用合法的標簽顯示,過濾掉非法的字符。
各語言示例:
PHP的htmlentities()或是htmlspecialchars()。
案例:
滲透bwapp HTML Injection - Reflected(GET) name輸入 <script>alert('gansir')</script> 或插入圖片
<img src="gan.png">
結果:
顯示插入內容
問題2:針對測試來說應該多方面進行考慮:如果一旦將特殊字符進行實體化我們要考慮將特殊字符進行:URL轉化測試
name輸入 %3cscript%3ealert(%2fxss%2f)%3c%2fscript%3e 或插入圖片
結果:
顯示插入內容