最近用 CodeIgniter Input class 提供的 XSS filter 時,無意間發現 filter 不是將所有特殊符號過濾掉,而是經過 parser 以後才決定哪些標籤和屬性需要刪除。
一般常見用來測試 XSS 的字串:
<script>alert(123)</script>
輸出:
[removed]alert(123)[removed]
若是將 javascript 嵌在屬性當中,CodeIgniter 會將標籤留下、屬性刪除:
<a href="#" onclick="alert(123)">test</a>
輸出:
<a >test</a>
parser 好像會 pa 錯 XD
回覆刪除一些正常的中文字符會被過濾掉
回覆刪除