美文网首页
XSS(跨站脚本攻击)

XSS(跨站脚本攻击)

作者: Medicine_8d60 | 来源:发表于2021-05-07 17:58 被阅读0次

XSS

是英文 Cross-Site Scripting 的缩写。

image

简单来说

  1. 正常用户 A 提交正常内容,显示在另一个用户 B 的网页上,没有问题
  2. 恶意用户 H 提交恶意内容,显示在另一个用户 B 的网页上,对B 的网页随意篡改。

造成 XSS 有几个要点

  1. 恶意用户可以提交内容
  2. 提交的内容可以显示在另一个用户的页面上
  3. 这些内容未经过过滤,直接运行在另一个用户的页面上

举例说明
假设我们有一个评论系统
用户 A 提交评论 【小明你好】到服务器,然后用户 B 来访问网站,看到了 A 的评论 【小明你好】,这里没有 XSS
恶意用户 H 提交评论【<script>console.log(document.cookie)</script>】, 然后用户 B 来访问网站,这段脚本在 B 的浏览器直接执行,恶意用户 H 的脚本就可以任意操作 B 的 cookie ,而 B 对此毫无察觉,有了 cookie, 恶意用户 H 就可以伪造 B 的登录信息,随意访问 B 的隐私了,而 B 始终被蒙在鼓里。

XSS 的成因以及如何避免
继续上面的例子,之所以恶意脚本能直接运行,有两个可能

  1. 后台模板问题
<p>
评论内容:<?php echo $content;?>
</p>

$content 的内容,没有经过任何过滤,原样输出。

  1. 前端代码问题
$p.html(content)

或者

$p = $('<p>' + content + '</p>')

content 内容又被原样输出了,解决办法就是不要自己拼 HTML ,尽量使用 text 方法,如果一定要使用 HTML 就把可疑符号变成 HTML 实体
代码示例
输入 <script>alert(1)</script> , 提交,会作为 html 执行这段代码,显示弹窗。

作者:一棵树4
链接:https://www.jianshu.com/p/52e5f22beb80
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

网友评论

      本文标题:XSS(跨站脚本攻击)

      本文链接:https://www.haomeiwen.com/subject/rhredltx.html