几天倩,我写了一个博客网站中有个评论功能。给别人玩的时候,在我的评论中输入了一段脚本代码,使我每次打开那个网页,就崩溃!百度了才知道是xss攻击!
什么是xss跨站脚本攻击
xss(Cross-site Scriping)
跨站:跨网站、域名
一个带有留言评论功能的网站,可以让用户留言。在正常使用留言时,都是没有问题的。
但是设想如果有人在评论留言区输入以下代码时呢?
<script>
alert("xss攻击成功!");
</script>
用户点击发表评论,则写入数据库,当下次网页加载,从数据库读出该用户评论的内容时,网页则自动执行了这段脚本内容,网页上将会弹框显示:xss攻击成功!并且是每次读取这段内容都会执行!
那么如果不是输入的弹框,而是一下代码呢?
<script>
location.href = "https://www.csdn.net/";
</script>
那么,当下次加载网页读取评论内容是,自动执行这段脚本代码,从而跳转到CSDN网站!
常用的XSS攻击手段和目的有:
1、盗用cookie,获取敏感信息。
2、利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
3、利用iframe、frame、XMLHttpRequest或上述Flash等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
4、利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
5、在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
防范措施
- 在用户提交时,对提交的内容进行过滤,直接不让用户提交恶意代码到数据库。
- 在写入数据库前、或者是在将查到的数据放到网页上前,将’<’、’>'等利用html中的实体符号进行转换
html实体符号:
显示符号 | 实体名称 |
---|---|
< | & lt; |
> | & gt; |