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. 《鸟哥的Linux私房菜》读书笔记三

    1.在Linux系统中,每个设备都被当成一个文件来对待,每个设备都会有设备文件名.比如 IDE接口的硬盘文件名为/dev/hd[a-d] 括号内的字母为a-d当中任意一个,即/dev/hda,/dev ...

  2. 监控持有sql和被堵塞的sql

    Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Client ...

  3. 【Android 复习】:Android之ViewFlipper(一)

    屏幕切换指的是在同一个Activity内屏幕见的切换,最长见的情况就是在一个FrameLayout内有多个页面,比如一个系统设置页面:一个个性化设置页面. 通过查看Android API文档可以发现, ...

  4. HDU-2527 Safe Or Unsafe

    http://acm.hdu.edu.cn/showproblem.php?pid=2527 建哈夫曼树,哈夫曼编码,求wpl值. Safe Or Unsafe Time Limit: 2000/10 ...

  5. HDU-2547 无剑无我

    无剑无我 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  6. HDU-4300 Clairewd’s message

    http://acm.hdu.edu.cn/showproblem.php?pid=4300 很难懂题意.... Clairewd’s message Time Limit: 2000/1000 MS ...

  7. Unity3d shader之SWAP Force Depth-of-Field Shader

    由于博主常年逃课,所以期末考试期间只能突击,但偶尔还能拿个奖学金啥的,哈哈,所以近一个月没有做游戏,也没有发博客= =... 这个景深的方法很简单 我们需要求的是CoC(circle of confu ...

  8. Interviews3D: APlatform for Interactive Handing of Massive Data Sets 读后感

    横向比较: Inadequacy of current system design( 现代系统和一些软件的不足) 软件特点: Output sensitivity Out-of core data h ...

  9. HDOJ/HDU 1113 Word Amalgamation(字典顺序~Map)

    Problem Description In millions of newspapers across the United States there is a word game called J ...

  10. 一步一步写一个简单通用的makefile(二)

    这一篇源代码沿用上一篇的源代码hellomake.c hellofunc.c hellofunc.h makefile 但是代码内容和结构有变化,如下: . ├── include │   └── h ...