接口安全性测试技术(6):XSS
什么是XSS
跨站脚本攻击是指恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入的Script代码会被执行,从而达到恶意攻击用户的目的。
XSS类型
1.反射式XSS
反射型 XSS 一般是攻击者通过特定手法(如电子邮件),诱使用户去访问一个包含恶意代码的 URL,当受害者点击这些专门设计的链接的时
候,恶意代码会直接在受害者主机上的浏览器执行。反射型XSS通常出现在网站的搜索栏、用户登录口等地方,常用来窃取客户端 Cookies
或进行钓鱼欺骗。
2. 存储式XSS
也叫持久型XSS,主要将XSS代码提交存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交XSS代码。当目标
用户访问该页面获取数据时,XSS代码会从服务器解析之后加载出来,返回到浏览器做正常的HTML和JS解析执行,XSS攻击就发生了。存储型
XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。
3. DOM-based 型XSS
基于 DOM 的 XSS 攻击是指通过恶意脚本修改页面的 DOM 结构,是纯粹发生在客户端的攻击。DOM 型 XSS 攻击中,取出和执行恶意代码
由浏览器端完成,属于前端 JavaScript 自身的安全漏洞。
XSS防御
1.HTTP响应的X-首部
X-Frame-Options:DENY 禁止加载frame,SAMEORGIN 仅允许加载同域frame
X-XSS-Protection:0禁止,1默认,1;mode=block强制不渲染
X-Content-Sercurity-Policy:(CSP策略)
2.域分离策略
子域与父域分离,减少风险
3.安全传输
HTTPS
4.安全cookie
设置cookie属性HttpOnly
5.验证码
可以减少非法操作和防止CSRF
6.慎防第三方内容
<script>引用的js文件
<iframe>引用的HTML文件
<object>引用的flash
下一节:更新接口安全性测试之CRSF及接口防刷技术
如果您看了本篇博客,觉得对您有所收获,请点击右下角的[推荐].
如果您想转载本博客,请注明出处,
如果您对本文有意见或者建议,欢迎留言.
感谢您的阅读,请关注我的后续博客!