XSS和CSRF


一、XSS

1.定义

XSS的英语全称是Cross-Site Scripting(跨站脚本攻击),因为和CSS同名,为了做出区别,改称为XSS。XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。攻击成功后,攻击者可能得到包括但不限于更高的权限(如执行一些操作)、私密网页内容、会话和cookie等各种内容。

<input type="text" value="<%= getParameter("name") %>">
<div>
  <%= getParameter("name") %>
</div>

//当输入 "><script>alert('haha');</script> 会被执行脚本

2.分类

存储型

攻击代码被攻击者提交到服务器数据库中,当其他用户使用网站时,攻击代码被服务端从数据库取出来拼接到html返回给用户浏览器,被浏览器拼接执行。

反射型

用户打开攻击者的url,攻击代码被藏在了url中,服务端将url中的内容取出来拼接到html返回给用户浏览器,被浏览器响应执行。

DOM

用户打开攻击者的url,攻击代码被藏在了url中,被前端的JavaScript取出执行。

3.预防手段

输入过滤

在后端输入放进数据库的时候进行过滤转义(前端不过滤,因为可能被跳过前端直接发请求),但是这种方法对于明确输入类型的如数字、地址等可以,其他的话可能出现乱码问题,毕竟前端不同的地方可能编码类型不一致。

预防存储型和反射型 XSS 攻击
纯前端渲染

将html的数据和业务内容分开,浏览器使用静态的html,在通过调用JavaScript将数据从DOM加载上去,但性能要求较高且有拼接html的危险。

转义 HTML

对一些字符进行转义

预防 DOM 型 XSS 攻击

尽量避免将可疑的数据拼接到字符串中

二、CSRF

1.定义

2.分类

get
post
链接

3.预防手段

同源检测
Samesite属性
token
双重Cookie

总结

XSS(跨站脚本攻击)和 CSRF(跨站请求伪造)是两种常见的网络安全攻击方式,它们的目标和实现方式不同。 XSS攻击主要针对的是网页应用中存在的漏洞,攻击者通过注入恶意的脚本代码到网页中,使得用户在浏览网页执行该恶意代码,从而达到攻击的目的。XSS攻击可以分为存储型、反射型和DOM型三种形式。存储型XSS攻击是将恶意代码存储到服务器端,当用户访问包含恶意代码的页面,恶意代码会从服务器端获取并执行;反射型XSS攻击是将恶意代码作为URL参数或表单提交到服务器端,服务器端将恶意代码返回给浏览器并执行;DOM型XSS攻击则是通过修改网页的DOM结构来实现攻击。 CSRF攻击则是利用用户已经登录认证的状态下,诱使用户点击恶意链接或访问恶意网页,从而触发已登录用户的操作。攻击者通过伪造请求,使用户在不知情的情况下执行了非自愿的操作。例如,攻击者可以通过发送包含恶意请求的图片链接或者钓鱼网站来实施CSRF攻击。CSRF攻击的关键在于利用了用户的身份认证信息。 综上所述,XSSCSRF的主要区别在于攻击的目标和实现方式。XSS攻击主要针对网页应用中的漏洞,注入恶意脚本代码;而CSRF攻击则利用用户已登录认证的状态下,伪造请求进行非自愿的操作。为了防范这两种攻击,开发者需要在编写代码注意输入验证、输出编码以及限制权限等安全措施。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值