我有一些必须能够接受XML输入的webforms(当然,包含<
和>
字符,我认为这是导致问题的原因)。然而,目前每当我单击提交按钮,其中一个表单字段包含这种类型的输入时,抛出代码为500的Sys.WebForms.PageRequestManagerServerErrorException
异常。如果输入没有<
和>
,一切都很顺利。我该如何解决这个问题?
我在关闭Page验证时会非常谨慎。查看HTML编码文本
默认启用请求验证。你可以使用web.config:
关闭所有页面<configuration>
<system.web>
<pages validateRequest="false" />
</system.web>
</configuration>
或者只在该页上通过将其添加到指令:
<%@ Page validateRequest="false" %>
如果您仍然希望页面请求验证正常运行(即不将其设置为false),您可以始终替换字符<,
在处理用户的HTML/XML输入时,您必须非常小心,并确保彻底清理了输入。
不同的web控件默认实现(或不实现)html lencoding。看看Which ASP。. NET控件自动编码?查看详细列表。
我还建议你看看微软的Anti-Cross Site Scripting Library。
你能编辑你的问题并发布一些代码(也许是导致错误的样本输入)?<
和>
可能是原因,但也可能是转移注意力。