XSS攻击理解与预防

什么是XSS攻击

XSS跨站脚本攻击(Cross Site Scripting)的本质是攻击者在web页面插入恶意的script代码,当用户浏览该网页之时,嵌入其中的script代码就会被执行,从而达到恶意攻击用户的目的,比如读cookie,sesssion,tokens,或者网站其它敏感信息。

XSS攻击的危害

1、通过document.cookie盗取cookie中的信息
2、使用js或css破坏页面正常的结构与样式
3、流量劫持(通过访问某段具有window.location.href 定位到其他页面)
4、ddos攻击:利用合理的客户端请求来占用过多的服务器,从而使合法用户无法得到服务器响应
5、控制企业数据,包括读取、篡改、删除等

XSS攻击的类型

反射型XSS攻击

反射型XSS漏洞常见于通过URL传递参数的功能,如网站搜索、跳转等,由于需要用户主动打开恶意的URL才能生效,攻击者往往会结合多种手段诱导用户点击

反射型XSS攻击的步骤

1、攻击者构造出特殊的URL,其中包含恶意代码
2、用户打开有恶意代码的URL时,网站服务器端将恶意代码从URL取出,拼接在HTML返回给浏览器
3、用户浏览器接收到响应后解析执行。混在其中的恶意代码也会被执行
4、恶意代码窃取用户数据并发送到攻击者的网站,或者冒充用户行为,调用目标网站接口执行攻击者的指定的操作

在这里插入图片描述

防御反射型XSS攻击

对输入进行检查: 对请求参数进行检查,一旦发现可疑的特殊字符就拒绝请求。
对输出进行转义再显示: 对潜在的威胁的字符进行编码、转义

存储型XSS攻击

恶意脚本永久存储在目标服务器上,当浏览器请求数据时,脚本从服务器传回执行,影响范围比反射型和DOM型XSS更大。存储型XSS攻击的原因是没有做好数据过滤:前端提交数据到服务端时,没有做好过滤,服务器端接收到数据时,在存储之前没有做过滤,前端从服务器请求到数据时,没有过滤输出

存储型XSS攻击步骤

1、攻击者将恶意代码提交到目标网站的数据库中
2、用户打开目标网站时,网站服务端将恶意代码从数据库中取出,拼接在HTML中返回给浏览器
3、用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行
4、恶意代码窃取用户数据并发送到攻击者的网站,或冒充用户行为,调用目标网站接口等

在这里插入图片描述

防御存储型XSS攻击

服务器接收到数据在存储数据库之前进行转义或过滤
前端接收到服务器传递过来的数据,在展示页面之前先进行转义或过滤

DOM型XSS攻击

DOM型XSS攻击实际上就是前端JavaScript代码不够严谨,把不可信的内容插入到了页面

DOM型XSS攻击步骤

1、 攻击者构造出特殊数据,其中包含恶意代码
2、用户浏览器执行了恶意代码
3、窃取用户数据并发送到攻击者的网站或冒充用户

防疫DOM型XSS攻击

在使用.innerHTML outerHTML document.write()时不要把不可信的数据插入到HTML页面中,应尽量使用.textContent .setAttribute()等

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值