MVC防止跨站请求伪造攻击(CSRF)_第1页
MVC防止跨站请求伪造攻击(CSRF)_第2页
MVC防止跨站请求伪造攻击(CSRF)_第3页
MVC防止跨站请求伪造攻击(CSRF)_第4页
MVC防止跨站请求伪造攻击(CSRF)_第5页
免费预览已结束,剩余2页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、one click什么是CSRF攻击CSRF/XSRF 。CSRF (Cross-site request forgery ),中文名称:跨站请求伪造,也被称为:attack/sessi on ridi ng,缩写为:因为在ASP.NET程序中,我们的用户信息都是存在与cookies里面的,此时在用户自己来说,程序已经可以算是裸奔了。正因为如此,Web程序接受的正常客户端请求一般来自用户的点击链接和表单提交等行为。可是恶意攻击者却可以依靠脚本和浏览器的安全缺陷来劫持客户端会话、伪造客户端请求。攻击者盗用了你的身份,以你的名义发送恶意请求,以你名义发送邮件,发消息,盗取你的账号,甚至于购买商品,

2、虚拟货币转账造成的问题包括:个人隐私泄露以及财产安全。这就是CSRF攻击。CSRF漏洞的攻击一般分为站内和站外两种类型:CSRF站内类型的漏洞在一定程度上是由于程序员滥用$_REQUEST类变量造成的,一些敏感的操作本来是要求用户从表单提交发起POST请求传参给程序,但是由于使用了$_REQUEST等变量,程序也接收GET请求传参,这样就给攻击者使用 CSRF攻击创造了 条件,一般攻击者只要把预测好的请求参数放在站内一个贴子或者留言的图片链接里,受害者浏览了这样的页面就会被强迫发起请求。CSRF站外类型的漏洞其实就是传统意义上的外部提交数据问题,留言评论等的表单加上水印以防止SPAM问题,但是

3、为了用户的体验性,一些操作可能没般程序员会考虑给一些有做任何限制,所以攻击者可以先预测好请求的参数,在站外的 Web页面里编写javascript脚本伪造文件请求或和自动提交的表单来实现GET、POST请求,用户在会话状态下点击链接访问站外的 Web页面,客户端就被强迫发起请求。浏览器的安全缺陷现在的Web应用程序几乎都是使用Cookie来识别用户身份以及保存会话状态,但是所有的浏览器在最初加入 Cookie功能时并没有考虑安全因素,从WEB页面产生的文件请求都会带上COOKIEMVC中防止CSRF攻击使用AntiForgeryToken 令牌,在ASP.NET的核心中为我们提供了一个用来检测

4、和组织CSRF攻击的令牌。()就可以阻止 CSRF攻击。model MvcA pp licatio n.Models. PersonViewBag.Title ="修改人员"Layout = "/Views/Shared/_Layout.cshtml"<h2>修改人员</h2><scri pt src="Url.C onten t("/Scri pts/jquery.validate.mi n.js")"typ e="text/javascri pt"x/scn p

5、t><scri ptsrc="Url.C on te nt("/Scn pts/jquery.validate.u nobtrusive.mi n.js")" typ e="text/javascri pt"x/scn pt>us ing (Html.Begi nForm()Html.A ntiForgeryToke n()Html.Validatio nSummary(true)<fieldset><legend>人员信息 </legend>Html.Hidde nFor(mod

6、el => model.ID)<div class="editor-label">Html.LabelFor(model => model.Name)</div><div class="editor-field">Html.EditorFor(model => model.Name)Html.Validati onM essageFor(model => model.Name)</div><div class="editor-label">Html.L

7、abelFor(model => model.Age)</div><div class="editor-field">Html.EditorFor(model => model.Age)Html.Validati onM essageFor(model => model.Age)</div>保存"/>vp>vinput typ e="submit" value="</p></fieldset><div>Html.ActionLink(

8、"返回列表", "Index")v/div>相应的我们要在 Controller中也要加入ValidateAntiForgeryToken过滤特性。该特性表示检测服务器请求是否被篡改。注意:该特性只能用于 post请求,get请求无效。/ 修改方法/ P OST: /Perso n/Edit/5ValidateA ntiForgeryToke nHtt pP ostp ublic Action Result Edit(i nt id, Person person) try数据库操作代码/ return RedirectToActio n("

9、;Success", person);catch return View();运行效果和上面的一样施 ggakge 二i修改用户成功!姓名主张三然后我们在运行刚才保存的Html文件看看数据库操作代码JA_'-A 詹吐A F B G冥I菲再哄必要的防伪标“.HT 应用程序中的服务器错误;未提供必要的防伪标记或萌伪标记无效。軌狞管苇WM谒哦期叵.也戎未泾K逢在匡常-词世左塔拽厢薛号耳 吐了爭 有共懐谙溟旦豈歳転中5藪褚谨町虫墜的请a右鳥Ffi哈哈报错了。那就证明我们现在的阻止CSRF攻击是有效的。使用Salt值加强保护为了保证我们的 An tiForgeryToken 阻止在程序

10、中唯一,更好的加密An tiForgeryToken ,我们可以为 AntiForgeryToken设置Salt值。这样,即使攻击者设法得到了令牌,但是如果Salt值不匹配也不能进行 post操作。电/修改方法/ P OST: /Perso n/Edit/5ValidateA ntiForgeryToke n(Salt = "aa")Htt pP ostp ublic Action Result Edit(i nt id, Person person) try/ return RedirectToActio n("Success", person);catch return View();我们暂时不修改 View代码运行看看 “ :胡®打耳/丘:巴£;3固Q X 恳未產方伪标::乜T 应用程序中的服务器错误舟未建供必要的防伪标记或防伪标记无效«男;*狞登1; Web

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论