今天要來認識XSS攻擊。
XSS
甚麼是XSS攻擊?
XSS(Cross-Site Scripting)是一種漏洞應用,攻擊者將代碼附加到合法網站時,代碼就會執行。最常見的是新增到URL的末尾,或者直接發布到顯示使用者所產生內容的頁面中。
類型
- 反射型
當用戶將資料(如搜尋詞)提交給網站後,這些資料會被立即返回並顯示在網頁上。如果這些資料中有惡意腳本,這個腳本會在網頁上立刻執行。這個攻擊是即時的,通常需要用戶自己點擊一個惡意連結或輸入內容。
- 存儲型
發生在用戶提交的惡意內容被存儲在伺服器上(例如:在評論區或留言板中)。當其他用戶瀏覽這個頁面時,惡意腳本會自動被執行,而這攻擊會影響所有訪問這個頁面的用戶,攻擊效果持久。
- DOM型
基於 JavaScript 的攻擊,它直接修改網站的 DOM(Document Object Model,文件對象模型)結構,讓惡意腳本在瀏覽器中執行,而不需要依賴伺服器,不依賴伺服器響應,是一種前端的攻擊方式。
防禦
Input Filtering
檢查和清理用戶輸入的資料,防止惡意腳本進入應用程式。也就是對所又得用戶輸入進行檢查,特別是評論區、搜尋框、表單等,並且會過濾特殊自元
以防止它們被解釋為 HTML 或 JavaScript 代碼。
Output Encoding
在將用戶輸入的資料顯示在網頁上之前,對其進行編碼,使瀏覽器將其視為普通文字而不是可執行代碼。
參考資料
https://www.cloudflare.com/zh-tw/learning/security/threats/cross-site-scripting/