我有一个带有按钮和文本框的页面,当文本框中的输入“< string>”然后我按下按钮时出现此错误:一个有潜在危险的请求。从客户端检测到表单值(TextBox1 =“”< string>“”)。
答案 0 :(得分:1)
您需要告诉ASP不要验证页面上的表单值:
<%@ Page ... ValidateRequest="false"%>
这可以消除您的错误,但在后端您需要保护自己免受恶意输入。将所有<
和>
个字符替换为编码值,这样就不会让自己受到XSS攻击。
答案 1 :(得分:1)
因为你正在传递“&lt;”以及“&gt;”,其中可能包含可能的恶意数据。您需要通过以下任一方式关闭页面验证:
设置页面声明:
<%@ Page Language="C#" ValidateRequest="false" %>
或者在web.config中:
<system.web>
<pages validateRequest="false" />
</system.web>
如果你这样做,你需要严格消毒输入!您可以通过在服务器端对输入进行编码来完成此操作:
Server.HtmlEncode(TextBox1.Text)
答案 2 :(得分:1)
这是ASP.NET的一项安全功能,可以防止用户提交脚本块等潜在危险的代码。
您可以通过将Page指令的validateRequest
属性设置为false
<%@ Page validateRequest="false" %>
或在web.config中禁用它:
<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
但要小心!正如我所说,这是一个安全功能!
您可以在此处详细了解:http://www.asp.net/learn/whitepapers/request-validation