Cross-Site Scripting (XSS)

預防方法

除了對輸入使用白名單或是黑名單驗證外,還需要針對輸出做 Encoding。

白名單驗證

使用 Regex 限制輸入資料的字元。

黑名單驗證

檢查輸入資料是否含有<script>等非法字元。

Encoding

針對輸出做 Encoding,是最根本的解決之道,可以讓 JavaScript 在瀏覽器不被執行。 一些非法字元的編碼如下:

 & --> &amp;
 < --> &lt;
 > --> &gt;
 " --> &quot;
 ' --> &#x27;     
 / --> &#x2F;

例如,輸入<script>alert("XSS");</script>,編碼後會變成:

&lt;script&gt;alert(&quot;This is XSS&quot;);&lt;&#x2F;script&gt;

如此一來,上述這段編碼後的內容在瀏覽器端會以一般的文字顯示。

參考網站

https://www.qa-knowhow.com/?p=2992

results matching ""

    No results matching ""