跨網站指令碼(Cross-Site Script; XSS)是一種常見的網站安全漏洞,攻擊者通過在目標網站輸入腳本代碼,然後使其在瀏覽器中執行,從而實現對用戶的攻擊。
XSS 攻擊通常發生在具有使用者輸入的網站上,例如表單輸入、討論區、評論區等。攻擊者利用網站未正確處理用戶輸入的漏洞,將腳本代碼嵌入網頁中。當其他用戶瀏覽該網頁時,瀏覽器會執行這些惡意腳本,導致攻擊者能夠竊取用戶的敏感資訊、在用戶間傳播惡意連結、修改網頁內容等。
XSS 攻擊可以分為三種主要類型:
存儲型 XSS:攻擊者將惡意腳本存儲在目標網站的資料庫中,當其他用戶訪問相關頁面時,腳本會從資料庫中提取並執行。
反射型 XSS:攻擊者將惡意腳本嵌入 URL 中,當用戶點擊包含惡意腳本的 URL 時,網站會將腳本作為參數回傳,瀏覽器解析並執行該腳本。
DOM 型 XSS:攻擊者通過修改網頁的 DOM(文檔物件模型),在用戶瀏覽器中執行惡意腳本,從而達到攻擊目的。
防範 XSS 攻擊的主要方法包括:
系統套件System.Web中有可以從新編碼的方法。
將資料已重新編碼後的格式存入DB,如果取出傳回前端,會以文字的形式顯示於瀏覽器上而不會觸發script。
<script>alert(1)</script>
在網路上會找到很多舊版的資料。
在Web.config中加入:
但是在 asp.net Core 中已經不再使用Web.config,而validaterequest功能也被移除不用了。
於NuGet套件管理器中下載AntiXSS。
但AntiXSS目前並不支援 .net core。
back-end