XSS和CSRF的区别以及解决方案。

本文深入解析了XSS跨站脚本攻击与CSRF跨站请求伪造攻击的原理及危害,XSS攻击通过注入恶意脚本窃取用户敏感信息,CSRF则利用用户已登录状态执行非授权操作。文章提供了防范措施,如设置cookie的httpOnly属性及使用REST风格接口。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

XSS跨站脚本攻击

跨站脚本攻击(Cross Site Scripting)缩写为CSS,
但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。
因此,有人将跨站脚本攻击缩写为XSS。

解释:

利用网站开发的漏洞,在用户请求的URL中加入XSS代码(Html,js,java等)作为参数传递给服务器,服务器端响应并执行。

后果:

成功后,攻击者可能会得到一些权限或者信息,包括,token,用户账号密码 等。

解决方案:

设置cookie的httpOnly为true

CSRF跨站资源访问攻击

跨站请求伪造(Cross-site request forgery),
也被称为 one-click attack 或者 session riding,
通常缩写为 CSRF 或者 XSRF.

解释:

利用网站身份验证的漏洞,在用户通过验证网站A的浏览器上,诱导用户点击浏览器上伪装网站B的内容,发送请求到网站A上,获取用户的信息,操作用户的请求等。
它是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。

跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

例子:

假如一家银行用以运行转账操作的URL地址如下:http://www.examplebank.com/withdraw?account=AccoutName&amount=1000&for=PayeeName
那么,一个恶意攻击者可以在另一个网站上放置如下代码:

 <img src="http://www.examplebank.com/withdraw?account=Alice&amount=1000&for=Badman">

如果有账户名为Alice的用户访问了恶意站点,而她之前刚访问过银行不久,登录信息尚未过期,那么她就会损失1000资金。

解决方案:

前端使用Rest风格接口访问,避免get请求操作服务器资源,可以在token中加入随机码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值