跨站腳本攻擊(Cross-Site Scripting,XSS)是一種常見的網站安全漏洞,攻擊者利用這種漏洞向網站的使用者注入惡意腳本,並在使用者的瀏覽器上執行這些腳本。
XSS 攻擊通常發生在具有互動功能的網站上,例如網站的留言板、論壇、評論系統等。攻擊者可以在網站的輸入欄位(例如文字框、URL 參數、Cookie 等)中插入特殊的腳本代碼,這些腳本代碼將被網站接受並傳送到其他使用者的瀏覽器中。當其他使用者訪問受感染的頁面時,他們的瀏覽器會執行這些惡意腳本,從而達到攻擊者想要的效果。
簡單的例子:
下面是一個會將使用者輸入的內容顯示出來的網頁。

如果這時候使用者輸入js腳本時會有以下結果。

如何預防xss攻擊
永遠不要相信使用者的輸入,只要是有輸入的地方,都應該去做驗證。
最簡易的方法就是將< 轉成 <,這樣在畫面上看到的依然是 <,但是對 parser 來說那並不是標籤開始的符號,而是文字的 <,就不會被當作 HTML 標籤來解析。