没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
全文可编辑 word 文档 页眉与背景水印可删除
1
浅谈 ASP.NET MVC 防止跨站请求伪造(CSRF)
攻击的实现方法
在 HTTP POST 请求中,我们多次在 View 和 Controller
中看下如下代码:
1.View 中调用了 Html.AntiForgeryToken()。
2.Controller 中 的 方 法 添 加 了
[ValidateAntiForgeryToken]注解。
这样看似一对的写法其实是为了避免引入跨站请求伪
造(CSRF)攻击。
这种攻击形式大概在 2001 年才为人们所认知,2006 年
美国在线影片租赁网站 Netflix 爆出多个 CSRF 漏洞,2008
年流行的视频网址 YouTube 受到 CSRF 攻击,同年墨西哥一
家银行客户受到 CSRF 攻击,杀毒厂商 McAfee 也曾爆出 CSRF
攻击(引自 wikipedia)。
之所以很多大型网址也遭遇 CSRF 攻击,是因为 CSRF 攻
击本身的流程就比较长,很多开发人员可能在几年的时间都
没遇到 CSRF 攻击,因此对 CSRF 的认知比较模糊,没有引起
足够的重视。
CSRF 攻击的模拟示例
我们这里将通过一个模拟的示例,讲解 CSRF 的攻击原
全文可编辑 word 文档 页眉与背景水印可删除
2
理,然后再回过头来看下 MVC 提供的安全策略。
看似安全的银行转账页面
假设我们是银行的 Web 开发人员,现在需要编写一个转
账页面,客户登录后在此输入对方的账号和转出的金额,即
可实现转账:
[Authorize]
public ActionResult TransferMoney()
{
return View();
}
[HttpPost]
[Authorize]
public ActionResult TransferMoney(string
ToAccount, int Money)
{
// 这里放置转账业务代码
ViewBag.ToAccount = ToAccount;
ViewBag.Money = Money;
return View();
}
由 于 这 个 过 程 需 要 身 份 验 证 , 所 以 我 们 为
全文可编辑 word 文档 页眉与背景水印可删除
3
TransferMoney 的两个操作方法都加上了注解[Authorize],
以阻止匿名用户的访问。
如 果 直 接 访 问
http://localhost:55654/Home/TransferMoney,会跳转到
登录页面:
登录后,来到转账页面,我们看下转账的视图代码:
@{
ViewBag.Title = "Transfer Money";
}
<h2>Transfer Money</h2>
@if (ViewBag.ToAccount == null)
{
using (Html.BeginForm())
{
<input type="text" name="ToAccount" />
剩余16页未读,继续阅读
资源评论
mmoo_python
- 粉丝: 0
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功