
持续关注慧测,每天进步一点!
讲师:刘老师
本期语音讲解

各位测试界的小伙伴
大家好,我是慧测的刘老师。
今天要给大家分析的面试题,题目如下:
谈谈你对XSS攻击的理解
面试官视角分析
XSS是web安全方面最常见的一种攻击方式。考察候选人对于web安全测试的了解程度。
参考答案
首先,这个词实际上是CSS(Cross Site Scripting)---跨站脚本攻击。
但它与CSS同名,所以改名为XSS。
基本原理是将一段JavaScript代码注入网页。然后当其他用户访问该页面时,他们将运行黑客编写的JS代码来获取账户信息,从而实现帐户控制。
经典案例是:
新浪微博被XSS攻击,大量用户自动转发微博、私信。
自动关注用户,大量用户被莫名其妙地控制。
那么黑客是如何植入这些JavaScript代码的呢?
主要方式有两类:
反射型XSS和存储型XSS。
所谓的反射型XSS就是攻击者通过特定手法诱导用户去访问一个包含恶意代码的URL,比如标题很有吸引力或邮件形式,当受害者点击这些专门设计的链接的时候恶意代码会直接在受害者主机上的浏览器执行。
此类 XSS 通常出现在网站的搜索栏、用户登录口等地方,也就是我们常说的钓鱼链接。
第二类是存储型XSS。
攻击者事先将恶意代码通过服务器的漏洞上传到服务器中,只要受害者浏览包含此恶意代码的页面就会执行恶意代码。
这就意味着只要访问了这个页面的访客,都有可能会执行这段恶意脚本,因此储存型XSS的危害会更大。
存储型 XSS 一般出现在网站留言、评论、博客日志等交互处,恶意脚本存储到客户端或者服务端的数据库中。比如用户撰写一点包含js代码的内容,当内容在html网页展示时,js代码也会被拼接到网页中,用户就可能会执行到这段js代码,从而获取当前用户的cookie信息,窃取到用户的账户信息。
如何防范XSS攻击呢?
1、入参字符过滤
在源头控制,把输入的一些不合法的东西都过滤掉,从而保证安全性。移除用户上传的Style节点,<iframe>, <script>,<a>, <script>节点等
2、出参进行编码
一些常见的符号,如<>在输出的时候要对其进行转换编码,这样做浏览器是不会对该标签进行解释执行的,同时也不影响显示效果。
例如:对<>做编码如:"<"用:"<",">"用:">"来代替
3、设置cookie httponly为true
确保就算有js木马被执行,用户的cookie核心信息也不会被获取到。
慧测老师寄语
如果你觉得你在测试过程中提交的bug分量不够,无法体现更大的价值。你就需要关注一下公司的产品尤其是web项目是否存在安全方面的问题?是否有必要进行完整的安全测试。
在准备面试的过程中,也可以准备一些安全方面的测试点,他们一定会成为你面试中的亮点和加分项。
以上就是今天面试题分享的全部内容,我们下期再见。
关注慧测,每天进步一点。

-END-
上期回顾:

慧测8月开班信息:
(别等啦,错过可能就是明年学习啦)
8月18日——自动化17期
8月18日——测试开发6期
8月18日——性能29期
8月18日——Python共享2期
欢迎加入我们:
慧测官网:www.huicewang.com
慧测Python群:324015481
公开课服务群:623636110
咨询QQ:2657535456
咨询微信号:huice666

慧测腾讯课堂 课程地址:


