XSS与CSRF两种跨站攻击

本文详细介绍了两种常见的Web安全威胁:XSS(跨站脚本)与CSRF(跨站请求伪造)。XSS利用恶意脚本在用户浏览器上执行以窃取信息或控制浏览器行为,而CSRF则通过伪造合法用户的请求来执行恶意操作。文章还探讨了这两种攻击的防御措施。

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

XSS与CSRF两种跨站攻击

1、XSS:跨站脚本()

可以通过JavaScript、Flash插件、Java插件等技术手段实现。
当用户浏览该页时,这些嵌入在html的恶意代码就会被执行,用户浏览器被攻击者控制。

  1. 盗取用户的cookies,伪造用户身份。
  2. 控制用户浏览器
  3. URL跳转漏洞
  4. 钓鱼网站

2、CSRF:跨站请求伪造(冒充用户,伪造请求)

冒充用户在站内的正常操作。绝大多数网站是通过 cookie 等方式辨识用户身份(包括使用服务器端 Session 的网站,因为 Session ID 也是大多保存在 cookie 里面的),再予以授权的。
CSRF漏洞检测:
最简单的方法就是抓取一个正常请求的数据包,去掉Referer字段后再重新提交,如果该提交还有效,那么基本上可以确定存在CSRF漏洞。

防御CSRF攻击
主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。
(1)验证 HTTP Referer 字段
HTTP 头中有一个字段叫 Referer,它记录了该 HTTP 请求的来源地址。
问题: Referer 值会记录下用户的访问来源,有些用户认为这样会侵犯到他们自己的隐私权。
(2)在请求地址中添加 token 并验证
token 可以在用户登陆后产生并放于 session 之中,然后在每次请求时把 token 从 session 中拿出,与请求中的 token 进行比对,但这种方法的难点在于如何把 token 以参数的形式加入请求。
(3)在 HTTP 头中自定义属性并验证
不是把 token 以参数的形式置于 HTTP 请求之中,而是把它放到 HTTP 头中自定义的属性里。通过 XMLHttpRequest 这个类,可以一次性给所有该类请求加上 csrftoken 这个 HTTP 头属性,并把 token 值放入其中。

XSS和CSRF的区别

XSS:用户过分信任网站放任来自浏览器地址栏代表的那个网站代码在自己本地任意执行,如果没有浏览器的安全机制限制,XSS代码可以在用户浏览器为所欲为。

CSRF:网站过分信任用户,放任来自所谓通过访问控制机制的代表合法用户的请求执行网站的某个特定功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值