ADUNIT000

XSS的全名是 Cross-site scripting (跨網站指令碼攻擊)

XSS攻擊也算是injection的一種方式,通常是利用網頁開發的漏洞,注入指令碼後再取得用戶或網站資料

下面簡單舉個XSS攻擊的範例讓大家看看

 

首先我們先建立一個簡單的留言輸入框提供輸入

下圖可以看到,在中文字後面多了一串Javascript的指令碼

 xss輸入  

 

在網站未檢查的狀態下就存入資料後

網頁本身並沒有顯示注入的指令碼

xss讀取1  

 

但是檢查網頁原始碼的時候就發現,網頁正在讀取注入的javascript指令

xss讀取3   

 

這個就是最簡單的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攻擊範例

利用這樣的方式,可以防範大部分的XSS攻擊手法

讓大家參考

 

如果覺得對你有幫助的話. 請幫小弟按個讚吧~

 

其它相關文章參考:

SQL Injection 範例

 

文章標籤
創作者介紹

史丹利愛碎念

newaurora 發表在 痞客邦 PIXNET 留言(2) 人氣()


留言列表 (2)

發表留言
  • 祺信 洪
  • <script src="exxxxample.com/bad.js"></script>
  • 訪客
  • 用黃色的字體根本看不到字...
找更多相關文章與討論