当前位置:网站首页>面试官:说说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 属性。
边栏推荐
- 迈动互联中标北京人寿保险
- A quick start to fastdfs takes you three minutes to upload and download files to the ECS
- 华为ensp模拟器 三层交换机
- torch. Tensor and torch The difference between tensor
- 杰理之AD 系列 MIDI 功能说明【篇】
- [1200. Différence absolue minimale]
- Explication détaillée du mécanisme de distribution des événements d'entrée multimodes
- ApplicationContext 与 BeanFactory 区别(MS)
- 为什么说不变模式可以提高性能
- Huawei ENSP simulator enables devices of multiple routers to access each other
猜你喜欢

Jmeter 之压测入门

Methods of improving machine vision system

A quick start to fastdfs takes you three minutes to upload and download files to the ECS

华为ensp模拟器 DNS服务器的配置

Huawei ENSP simulator enables devices of multiple routers to access each other

改善机器视觉系统的方法

render函数与虚拟dom

Routing configuration and connectivity test of Huawei simulator ENSP

Difference between ApplicationContext and beanfactory (MS)

Huawei ENSP simulator layer 3 switch
随机推荐
FastDfs的快速入门,三分钟带你上传下载文件到云服务器
宝塔 7.9.2 宝塔控制面板绕过 手机绑定认证 绕过官方认证
Huawei ENSP simulator realizes communication security (switch)
Explication détaillée du mécanisme de distribution des événements d'entrée multimodes
华为模拟器ensp的路由配置以及连通测试
【optimtool.unconstrain】无约束优化工具箱
杰理之AD 系列 MIDI 功能说明【篇】
[observation] Lenovo: 3x (1+n) smart office solution, releasing the "multiplier effect" of office productivity
每日一题-LeetCode556-下一个更大元素III-字符串-双指针-next_permutation
Google colab踩坑
杰理之AD 系列 MIDI 功能说明【篇】
网件r7000梅林系统5g不稳定 5g信号经常掉线解决方法
Render function and virtual DOM
WGCNA analysis basic tutorial summary
c语言函数形参自增自减情况分析
奋斗正当时,城链科技战略峰会广州站圆满召开
【Try to Hack】宽字节注入
每日一题-LeetCode1200-最小绝对差-数组-排序
【微服务|SCG】Predicate的使用
Billions of citizens' information has been leaked! Is there any "rescue" for data security on the public cloud?