XSS?这是啥?

172 阅读1分钟

再说XSS之前,我们先说个小故事。

有一天小红在服务器上提交了一个评论:“博主真帅啊!”,此时小明访问该页面,看见了小红的评论,心想:“这人眼光太差了,让我会会她!”,此时小明在页面提交了一条评论:

<script>
   console.log(document.cookie)
</script>

这时小红又来了,这段代码在小红的浏览器直接执行,小明就顺利的拿到了小红的cookie,登上了小红的账号开始辱骂这个博主...

这就叫做XSS(Cross-Site Scripting),那么它是如何形成的?

  1. 首先是后台的模版问题:
<p>
评论内容:<?php echo $content; ?>
</p>

此时$content的内容并没有经过过滤就输出了,怎么解决呢?我们将<符号变成 &lt;(HTML实体)就行。

  1. 前端代码问题:

$p.html(content)

或者

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

此时content 内容又被原样输出了。解决办法就是不要自己拼 HTML,尽量使用 text 方法。如果一定要使用 HTML,就把可疑符号变成 HTML 实体。

文章来源!!