XSS的全名是 Cross-site scripting (跨網站指令碼攻擊)
XSS攻擊也算是injection的一種方式,通常是利用網頁開發的漏洞,注入指令碼後再取得用戶或網站資料
下面簡單舉個XSS攻擊的範例讓大家看看
首先我們先建立一個簡單的留言輸入框提供輸入
下圖可以看到,在中文字後面多了一串Javascript的指令碼
在網站未檢查的狀態下就存入資料後
網頁本身並沒有顯示注入的指令碼
但是檢查網頁原始碼的時候就發現,網頁正在讀取注入的javascript指令
這個就是最簡單的XSS攻擊
避免這種攻擊方式,最簡單的方法就是加上過濾輸入資料的函數
例如:使用 htmlentities (或htmlspecialchars)方式轉換留言
在接收到使用者輸入的訊息後
$xss_content = htmlentities($_POST['xssinput']);
存入資料庫
$xss_sql = "INSERT INTO `xss_test`(`id`,`content`) VALUES ('' , '".$xss_content."')";
$xss_query = mysql_query($xss_sql);
利用右鍵檢視原始碼的方式可以看到過濾後的結果:
下面紅框的內容已經把javascript的指令碼轉換成對應的字符編碼
而藍色框內則是未使用 htmlentities 轉換前的狀態
這個就是最簡單的XSS攻擊範例
利用這樣的方式,可以防範大部分的XSS攻擊手法
讓大家參考
如果覺得對你有幫助的話. 請幫小弟按個讚吧~
其它相關文章參考:
留言列表