ASP.NET MVC ajax提交 防止CSRF攻击
//在View中
<script type="text/javascript">
  @functions{
    public string ToKenHeaderValue()
   {
        string cookieToken,fromToken;
        AntiForgery.GetTokens(null,out cookieToken,out fromToken);
        return  cookieToken+":"+fromToken;
   }
}
$function({
......
  $.ajax("api/Value",{
   data:{...},
    type:'post',
   dataType:'json',
   headers:{'RequestVerificationToKen':'@ToKenHeaderValue()'},
  success:fucntion(data){....}
   })
})
</script>
//自己写的过滤器
public class MyValidateAntiForgeryToKenAttribute:FileterAttribute,IAuthorizationFilter
{
    private void ValidateRequestHeader(HttpRequestBase request)
  {  
       string cookieToKen="";
       string fromToKen="";
       string tokenValue=request.Header["RequestVerificationToKen"];
       if(!string.IsNullOrEmpty(tokenValue))
        {
             string[] tokens=tokenValue.Split(':');
             if(tokens.Length=2)
              {
                    cookieToken=tokens[0].Trim();
                    fromToKen=tokens[1].Trim();
               }
        }
    AntiForGery.Validate(cookieToken,fromToken);
  }
}
public void OnAuthiorization(AuthorizationContexte context)
{
   try
   {
      if(context.HttpContext.Request.IsAjaxRequest())//判断是否ajax提交
       {
          ValidateRequetHeader(context.HttpContext.Request);
       }
       else
         AntiForgery.Validate();
 }
 catch
 {
      throw new HttpAntiForgeryException("...");
 }
在Controller的Action中
1 [HttpPost]//指示POST提交
2 [MyValidateAntiForgeryToKen]//这儿调用自己写的过滤器,实现防止CSRF攻击
3 public ActionResult Value()
4 {
5 .......
6 }
ASP.NET MVC ajax提交 防止CSRF攻击的更多相关文章
- [ASP.NET MVC]@Html.AntiForgeryToken() 防止CSRF攻击
		MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site request ... 
- asp.net mvc ajax提交例子
		@{ Layout = null; } <script src="../../Scripts/jquery-1.10.2.min.js" type="text/ja ... 
- asp.net mvc ajax提交模型到控制器
		http://blog.csdn.net/loongsking/article/details/53224473 function btn_submit() { var data = n ... 
- 转:MVC Html.AntiForgeryToken() 防止CSRF攻击
		(一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.AntiForgeryToken()是用来防止跨站请求伪造(CSRF:Cross-site requ ... 
- MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客
		原文:MVC Html.AntiForgeryToken() 防止CSRF攻击 - CSDN博客 (一)MVC Html.AntiForgeryToken() 防止CSRF攻击 MVC中的Html.A ... 
- [转]MVC Html.AntiForgeryToken() 防止CSRF攻击
		[转]MVC Html.AntiForgeryToken() 防止CSRF攻击 本文转自:http://blog.csdn.net/luck901229/article/details/8261640 ... 
- 【转载】Asp.Net MVC网站提交富文本HTML标签内容抛出异常
		今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ... 
- 【转载】 Asp.Net MVC网站提交富文本HTML标签内容抛出异常
		今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ... 
- MVC  Ajax 提交是防止SCRF攻击
		//在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue( ... 
随机推荐
- [转贴]JAVA:RESTLET开发实例(三)基于spring的REST服务
			前面两篇文章,我们介绍了基于JAX-RS的REST服务以及Application的Rest服务.这里将介绍restlet如何整合spring框架进行开发.Spring 是一个开源框架,是为了解决企业应 ... 
- win10全系列官方MSDN原版系统安装密钥、版本区别、镜像下载地址与激活教程
			微软发布win10正式版已经过去几天了,相信很多同学都心情高涨的装上了期待已久的win10系统,但也有很多同学面对win10系统的众多版本感到一脸茫然,的确,微软在win10系统版本上的划分确实有点多 ... 
- show processlist 输出ID 和 information_schema.PROCESSLIST 的id,information_schema.innodb_trx的TRX_MYSQL_T
			Session 1: mysql> start transaction; Query OK, 0 rows affected (0.00 sec) mysql> update Client ... 
- How to convert an IPv4 address into a integer in C#?
			仅仅针对于IPv4的处理方法 从string转换为int 以及从int转换为string // IPv4 int intAddress = BitConverter.ToInt32(IPAddress ... 
- POJ_3045_Cow_Acrobats_(贪心)
			描述 http://poj.org/problem?id=3045 n头牛,每头牛都有重量w[i]和力量s[i].把这n头牛落起来,每头牛会有一个危险值,危险值是它上面所有牛的重量和减去它的力量.求危 ... 
- SSI指令使用详解(转)
			什么是 SHTML使用SSI(Server Side Include)的html文件扩展名,SSI(Server Side Include),通常称为“服务器端嵌入”或者叫“服务器端包含”,是一种类似 ... 
- UITextView 动态高度计算(iOS7版)
			NSDictionary *attrsDictionary = [NSDictionarydictionaryWithObject:[UIFontsystemFontOfSize:kCellConte ... 
- MOSS母板页制作 学习笔记(一)
			转:http://xiachanghao1990.blog.163.com/blog/static/4869602420114235536573/ 母版页制作其实应该算是一个比较基础的工作,但是熟练制 ... 
- DevExpress的JavaScript脚本智能提示
			http://www.cnblogs.com/zhaozhan/archive/2011/06/08/2075767.html ASPxScriptIntelliSense.js在安装目录下的Comp ... 
- php 修改上传文件大小
			有些朋友要通过自己的网站后台,包括论坛,来上传一些文件,php一般为2m,或8m(以下我们按默认为2m),接下来就是来讲怎么修改上传文件大小的. 1.首先修改执行上传文件限制 一般的文件上传,除非文件 ... 
