Shy*_*yju 40 asp.net security ajax jquery asp.net-ajax
我正在使用jQuery对一个ASP.NET页面进行ajax调用,该页面充当我的ajax服务器页面,用于保存我在查询字符串中发送给它的数据.在ASP.NET页面中,当我尝试读取查询字符串时,我收到此错误:
A potentially dangerous Request.QueryString value was detected from the client...
Run Code Online (Sandbox Code Playgroud)
我已经ValidateRequest="false"在我的页面中设置了 .不想为所有页面设置它.所以它在页面级别而不是配置级别:
var content = "<h3>Sample header</h3><p>sample para</p>"
content = encodeURIComponent(content);
var url = "../Lib/ajaxhandler.aspx?mode=savecontent&page=home<xt=" + content;
$.post(url, function (data) {
//check return value and do something
});
Run Code Online (Sandbox Code Playgroud)
在我的asp.net页面中:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ajaxhandler.aspx.cs" ValidateRequest="false" Inherits="MyProject.Lib.ajaxhandler" %>
Run Code Online (Sandbox Code Playgroud)
但是当我发送纯文本而不是html标记时,它工作正常.
对此已有一个很好的答案,在这里我将提供信息,这样您就不必点击链接.
运行ASP.NET 4.0时,需要在web.config文件中设置以下内容RequestValidationMode="2.0".
这个属性是什么?
一个值,指示将使用哪种特定于ASP.NET版本的验证方法.默认值为4.0.
那么可能的价值是什么?
4.0(默认值).HttpRequest对象在内部设置一个标志,指示每当
访问任何HTTP请求数据时都应触发请求验证.这保证了在请求 期间访问
诸如cookie和URL之类的数据之前触发请求验证
.将 忽略
配置文件中的pages元素(如果有)或
单个页面中的@ Page 指令的请求验证设置.
2.0.仅对页面启用请求验证,而不是对所有HTTP请求启用.此外,配置文件中的pages元素(如果有)或单个页面中的@ Page指令的请求验证设置用于确定要验证的页面请求.
| 归档时间: |
|
| 查看次数: |
70956 次 |
| 最近记录: |