1. //在View中
  1. <script type="text/javascript">
  2. @functions{
  3. public string ToKenHeaderValue()
  4. {
  5. string cookieToken,fromToken;
  6. AntiForgery.GetTokens(null,out cookieToken,out fromToken);
  7. return cookieToken+":"+fromToken;
  8. }
  9. }
  10.  
  11. $function({
  12.  
  13. 。。。。。
  14. $.ajax("api/Value",{
  15. data:{...},
  16. type:'post',
  17. dataType:'json',
  18. headers:{'RequestVerificationToKen':'@ToKenHeaderValue()'},
  19. success:fucntion(data){....}
  20. })
  21. })
  22. </script>
  1.  
  1. //自己写的过滤器
  2.  
  3. 1 public class MyValidateAntiForgeryToKenAttribute:FileterAttribute,IAuthorizationFilter
  4. {
  5. private void ValidateRequestHeader(HttpRequestBase request)
  6. {
  7. string cookieToKen="";
  8. string fromToKen="";
  9. string tokenValue=request.Header["RequestVerificationToKen"];
  10. if(!string.IsNullOrEmpty(tokenValue))
  11. {
  12. string[] tokens=tokenValue.Split(':');
  13. if(tokens.Length=)
  14. {
  15. cookieToken=tokens[].Trim();
  16. fromToKen=tokens[].Trim();
  17. }
  18. }
  19. AntiForGery.Validate(cookieToken,fromToken);
  20. }
  21. }
    20 public void OnAuthiorization(AuthorizationContexte context)
    21 {
    22 try
    23 {
    24 if(context.HttpContext.Request.IsAjaxRequest())//判断是否ajax提交
    25 {
    26 ValidateRequetHeader(context.HttpContext.Request);
    27 }
    28 else
    29 AntiForgery.Validate();
    30 }
    31 catch
    32 {
    33 throw new HttpAntiForgeryException("...");
    34 }
  22.  

在Controller的Action中

  1. [HttpPost]//指示POST提交
    [MyValidateAntiForgeryToKen]//这儿调用自己写的过滤器,实现防止CSRF攻击
    public ActionResult Value()
  2. {
  3. .......
  4. }

参考:Preventing Cross-Site Request Forgery (CSRF) Attacks

MVC Ajax 提交是防止SCRF攻击的更多相关文章

  1. ASP.NET MVC ajax提交 防止CSRF攻击

    //在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue( ...

  2. mvc ajax提交数组参数(转)

    http://blog.csdn.net/lonestar555/article/details/10192595/ 在action中的参数以数组方式接收数据 一.表单方式 1.提交Form < ...

  3. mvc ---- ajax 提交 (ckeditor)富文本框 提示潜在危险 Request.Form

    ajax 提交 ckeditor 中的内容怎么提交都提交不了,折腾半天,后来终于找到问题 在你的方法头上加 [HttpPost] [ValidateInput(false)] public Actio ...

  4. Mvc Ajax提交多个checkbox,也说绑定和提交select

    Ajax Mvc的 checkbox 后端必须是List<T> ,T是ID类型,一般int 或guid 模型必须初始化List<T> 防止客户端没有提交任何值时空引用的问题,如 ...

  5. spring mvc ajax 提交复杂数组类型

    The server refused this request because the request entity is in a format not supported by the reque ...

  6. Spring MVC ajax提交方式

    使用jquery的ajax的方式来提交 第一种,以json对象的形式提交 var jsonData = { "name" : "zhangsan", " ...

  7. asp.net mvc ajax提交例子

    @{ Layout = null; } <script src="../../Scripts/jquery-1.10.2.min.js" type="text/ja ...

  8. asp.net mvc ajax提交模型到控制器

    http://blog.csdn.net/loongsking/article/details/53224473 function btn_submit() {        var data = n ...

  9. mvc ---- ajax 提交过来的Json格式如何处理(解析)

    前台传过来的不是一个对象,而是一个Json字符串怎么办 ? 如: {","contents":"<p>lsdfjlsdjflsdf</p> ...

随机推荐

  1. NAND FLASH的容量、特性、市场和应用

    NAND Flash的容量   一直到2006年,MLC芯片的容量每年都成倍数增长:由于NAND Flash的制程升级的挑战越来越大,所以NAND Flash之后的容量成倍增长所需要的时间也在不断增加 ...

  2. 基于Delphi的Socket I/O模型全接触 good

    老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系.他们的信会被邮递员投递到他们的信箱里. 这和Socket模型非常类似.下面我就以老陈接收信件为例讲解Socket I/O模型. 一:se ...

  3. Learning WCF Chapter1 Exposing Multiple Service Endpoints

    So far in this chapter,I have shown you different ways to create services,how to expose a service en ...

  4. C#面向对象——方法的重载及构造函数、静态对象。

    namespace nameclass2 { class Class2 //方法的重载 { public void Function( string s) { Console.WriteLine(s) ...

  5. bzoj1237

    假如不存在相等的两个数不能配对,那很容易贪心得到,A中rank 1匹配B中rank 1 A中rank2 匹配B中rank 2…… 有了相等不能匹配这个条件,那么A中rank i可能和rank i,i- ...

  6. NOI2005维护数列

    1500: [NOI2005]维修数列 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 6263  Solved: 1879[Submit][Status ...

  7. nohup.out

    nohup.out 文件的产生 linux的nohup命令的用法 不输出nohup.out nohup node app.js > /dev/null 2>&1 &

  8. 【转】iOS Provisioning Profile(Certificate)与Code Signing详解 -- 待看

    原文网址:http://blog.sina.com.cn/s/blog_82c8198f0102vy4j.html 引言 关于开发证书配置(Certificates & Identifiers ...

  9. HDOJ--1698

    Just a Hook Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  10. 统计学习方法——P1

    背景基础知识备忘 平均差 MD=(∑|xi-x'|)/n 加权平均差 A.D=(∑|xi-x'|fi)/∑fi 方差 标准差 SD=方差的平方根 分布函数:   设X是一个随机变量,x是任意实数,函数 ...