因此,<<
您>>
的部分帖子被服务器视为 XSS 攻击。由于您使用包含字符串的文本框加载文本框,<
并且>
它将在下次发布到服务器并且由于<script>
标签也以 < > 字符开始/结束服务器检查 XSS 敏感字符并拒绝请求。在服务器控件中发布数据和加载数据时,最好使用asp.net 提供的HTTPUtility.HtmlEncode
And方法发布这样的数据。HTTPUtility.HtmlDecode
请参阅以下示例:-
string DecHtml = HttpUtility.HtmlDecode(value1);
string EncHtml = HttpUtility.HtmlEncode(value2);
查找有关 HTMLEncode 输入的更多信息如果你想了解 XSS,你应该遵循这个
不过幸运的是,我们可以在 ASPX 的 page 指令中关闭验证:
<%@ Page Language="C#" MasterPageFile="~/Site.Master"
AutoEventWireup="true" CodeBehind="webpage.aspx.cs"
Inherits="Web.webpage" Title="webpageSite" ValidateRequest="false" %>
或者,可以在 web.config 中关闭整个站点的请求验证:
<pages validateRequest="false" />
对于 .NET 4.0
,在 .NET 4 请求验证模式下运行时,您不能再在页面级别将其关闭,为了能够禁用验证,我们需要让 web.config 退回到 2.0 验证模式:
<httpRuntime requestValidationMode="2.0" />
坦率地说,这根本不是一个聪明的主意,除非您有充分的理由要从站点的每个页面中删除此安全网。因此,恕我直言,最好的方法是尽可能使用编码和解码。在这里找到更多