当前位置:网站首页>面试官:说说XSS攻击是什么?
面试官:说说XSS攻击是什么?
2022-07-04 20:34:00 【Ss、、帅海】
1 什么是XSS攻击?
xss全称是(cross site scripting (即跨站脚本),为了和CSS区分,故叫它xss。XSS 攻击是指浏览器中执行恶意脚本(无论是跨域还是同域),从而拿到用户的信息并进行操作。
这些操作一般可以完成下面这些事情:
- 窃取cookie。
- 监听用户行为,比如输入账号密码后直接发送到黑客服务器。
- 修改DOM伪造登录表单。
- 在页面中生成浮窗广告。
通常情况,XSS攻击的实现有三种方式―—存储型、反射型和文档型。原理都比较简单,先来—一介绍一下。
(1)存储型
存储型,顾名思义就是将恶意脚本存储了起来,确实,存储型的XSS将脚本存储到了服务端的数据库,然后在客户端执行这些脚本,从而达到攻击的效果。
常见的场景是留言评论区提交一段脚本代码,如果前后端没有做好转义的工作,那评论内容存到了数据库,在页面渲染过程中直接执行,相当于执行一段未知逻辑的JS代码,是非常恐怖的。这就是存储型的XSS 攻击。
(2)反射型
反射型XSS指的是恶意脚本作为网络请求的一部分。
比如我输入:
http://sanyuan.com?q=<script>alert("你完蛋了")</script>
这样,在服务器端会拿到q参数,然后将内容返回给浏览器端,浏览器将这些内容作为HTML的一部分解析,发现是一个脚本,直接执行,这样就被攻击了。
之所以叫它反射型,是因为恶意脚本是通过作为网络请求的参数,经过服务器,然后再反射到HTML文档中,执行解析。和存储型不一样的是,服务器并不会存储这些恶意脚本。
(3)文档型
文档型的XSS攻击并不会经过服务端,而是作为中间人的角色,在数据传输过程劫持到网络数据包,然后修改里面的html文档!
这样的劫持方式包括WIFI路由器劫持或者本地恶意软件等。
二 防范措施
明白了三种XSS攻击的原理,我们能发现一个共同点;都是让恶意脚本直接能在浏览器中执行。
那么要防范它,就是要避免这些脚本代码的执行。
为了完成这一点,必须做到一个信念,两个利用。
(1)一个信念
千万不要相信任何用户的输入!
无论是在前端和服务端,都要对用户的输入进行转码或者过滤。
比如
<script>alert('你完蛋了')</script>
转码后变为:
<script>alert('你完蛋了')</script>
(2)利用CSP
CSP,即浏览器中的内容安全策略,它的核心思想就是服务器决定浏览器加载哪些资源,具体来说可以完成以下功能:
- 限制其他域下的资源加载。
- 禁止向其它域提交数据。
- 提供上报机制,能帮助我们及时发现XSS攻击。
(4)利用HttpOnly
很多XSS攻击脚本都是用来窃取Cookie,而设置Cookie的HttpOnly属性后,JavaScript便无法读取Cookie的值。这样也能很好的防范XSS 攻击。
总结
XSS攻击是指浏览器中执行恶意脚本,然后拿到用户的信息进行操作。主要分为存储型、(反射型和文档型。防范的措施包括:
- 一个信念:不要相信用户的输入,对输入内容转码或者过滤,让其不可执行。·
- 两个利用:利用CSP,利用Cookie的 HttpOnly 属性。
边栏推荐
- Solution of 5g unstable 5g signal often dropped in NetWare r7000 Merlin system
- Stealing others' vulnerability reports and selling them into sidelines, and the vulnerability reward platform gives rise to "insiders"
- 2021 CCPC 哈尔滨 I. Power and Zero(二进制 + 思维)
- Embedded TC test case
- render函数与虚拟dom
- PS vertical English and digital text how to change direction (vertical display)
- 吐槽 B 站收费,是怪它没钱么?
- minidom 模塊寫入和解析 XML
- 嵌入式TC 测试用例
- Huawei ENSP simulator realizes communication security (switch)
猜你喜欢
华为ensp模拟器 配置ACL访问控制列表
Jerry's ad series MIDI function description [chapter]
Day24: file system
Jmeter 之压测入门
Huawei ENSP simulator configures ACL access control list
Can be displayed in CAD but not displayed in print
解析互联网时代的创客教育技术
Y56. Chapter III kubernetes from entry to proficiency -- business image version upgrade and rollback (29)
仿ps样式js网页涂鸦板插件
OMS系统实战的三两事
随机推荐
WGCNA analysis basic tutorial summary
Huawei simulator ENSP common commands
冰河的海报封面
The video sound of station B is very low - solution
PS vertical English and digital text how to change direction (vertical display)
吐槽 B 站收费,是怪它没钱么?
插入排序,选择排序,冒泡排序
At the right time, the Guangzhou station of the city chain science and Technology Strategy Summit was successfully held
Render function and virtual DOM
NetWare r7000 Merlin system virtual memory creation failed, prompting that the USB disk reading and writing speed does not meet the requirements. Solution, is it necessary to create virtual memory??
Jerry's ad series MIDI function description [chapter]
OMS系统实战的三两事
Day24: file system
LambdaQueryWrapper用法
创客思维在高等教育中的启迪作用
async await 在map中使用
Difference between ApplicationContext and beanfactory (MS)
杰理之AD 系列 MIDI 功能说明【篇】
maya灯建模
[ 每周译Go ] 《How to Code in Go》系列文章上线了!!