MVC Ajax 提交是防止SCRF攻击
//在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>
//自己写的过滤器 1 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=)
{
cookieToken=tokens[].Trim();
fromToKen=tokens[].Trim();
}
}
AntiForGery.Validate(cookieToken,fromToken);
}
}
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 }
在Controller的Action中
[HttpPost]//指示POST提交
[MyValidateAntiForgeryToKen]//这儿调用自己写的过滤器,实现防止CSRF攻击
public ActionResult Value()
{
.......
}
参考:Preventing Cross-Site Request Forgery (CSRF) Attacks
MVC Ajax 提交是防止SCRF攻击的更多相关文章
- ASP.NET MVC ajax提交 防止CSRF攻击
//在View中 <script type="text/javascript"> @functions{ public string ToKenHeaderValue( ...
- mvc ajax提交数组参数(转)
http://blog.csdn.net/lonestar555/article/details/10192595/ 在action中的参数以数组方式接收数据 一.表单方式 1.提交Form < ...
- mvc ---- ajax 提交 (ckeditor)富文本框 提示潜在危险 Request.Form
ajax 提交 ckeditor 中的内容怎么提交都提交不了,折腾半天,后来终于找到问题 在你的方法头上加 [HttpPost] [ValidateInput(false)] public Actio ...
- Mvc Ajax提交多个checkbox,也说绑定和提交select
Ajax Mvc的 checkbox 后端必须是List<T> ,T是ID类型,一般int 或guid 模型必须初始化List<T> 防止客户端没有提交任何值时空引用的问题,如 ...
- spring mvc ajax 提交复杂数组类型
The server refused this request because the request entity is in a format not supported by the reque ...
- Spring MVC ajax提交方式
使用jquery的ajax的方式来提交 第一种,以json对象的形式提交 var jsonData = { "name" : "zhangsan", " ...
- 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 ---- ajax 提交过来的Json格式如何处理(解析)
前台传过来的不是一个对象,而是一个Json字符串怎么办 ? 如: {","contents":"<p>lsdfjlsdjflsdf</p> ...
随机推荐
- Library Cache Lookup
Libraey Cache Data Access library cache是关于SQL语句的SGA中的一系列的链表, library cache是通过访问一系列的hash buckets,实现使用 ...
- nohup.out
nohup.out 文件的产生 linux的nohup命令的用法 不输出nohup.out nohup node app.js > /dev/null 2>&1 &
- EasyUI的增删查改(后台ASP.NET)
转自:http://www.cnblogs.com/dedeyi/archive/2013/04/22/3035057.html 某某人曾经跟我说,你们做系统不就是增删查改吗. 是啊,很多时候我们就是 ...
- Lua运算符
+ 加- 减* 乘/ 除^ 幂% 求余# 求长度= 赋值< 小于> 大于== 等于<= 不大于=> 不小于~= 不等于and 逻辑与or 逻辑或not 逻辑非.. 连接字符串
- Grading
100 >= A >= 93 > A- >= 90; 90 > B+ >= 87 > B >= 83 > B- >= 80; 80 > ...
- Count the string -- HDOJ 3336
Count the string Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ...
- Bzoj 4196: [Noi2015]软件包管理器 树链剖分
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 721 Solved: 419[Submit][Statu ...
- linux下在多个文件夹中查找指定字符串的命令
例如,想要在当前文件夹下的多个.c或者.txt文件中查找“shutdown”字符串, 可以使用“grep shutdown ./*.c”或“grep shutdown ./*.txt”即可 使用fin ...
- HDU 2102 A计划(三维BFS)
这题太欢乐了......虽然wa了几次,但是想到骑士在两幅图的传送门中传来传去就觉得这骑士太坑了 #include <cstdio> #include <iostream> # ...
- Jsp中的EL表达式
EL表达式作用: 向浏览器输出域对象中的变量值或表达式计算的结果!!! 语法: ${变量或表达式} 可以通过page指令来设置EL表示是否启用,false是不启用,true是启用,默认是true &l ...