当前,当尝试提交包含下拉列表的交易时,该下拉列表的文本包含尖括号,例如"<abcd>"
, 自 ValidateRequest=true
以来我收到 500 个内部服务器错误默认情况下,并在到达页面处理程序之前抛出未处理的异常,因为它存在跨站点脚本问题。
HttpModule
中有没有办法拦截和修改请求对象?或 Glabal.asax
因为我知道 Request 对象是只读的。
我已经苦恼了将近三天,但无法得到具体的解决方案。 处理此类情况的最佳解决方案是什么?我也不想在客户端对其进行编码。
最佳答案
对列表框中的值进行编码:
<asp:ListItem><abcd></asp:ListItem>
[编辑] 我意识到我的解决方案不适用。内容可能由浏览器编码发送,并且也由下拉列表编码呈现(如果您使用标准数据绑定(bind))。我认为您唯一的选择是禁用请求验证。
这意味着您必须非常小心用户输入。为简单起见,使用 HttpUtility.HtmlEncode(txtXX.Text); 对每个用户输入进行编码;
。
更多信息请参见 Script Exploits Overview MSDN 页面。
关于c# - 在 ASP.Net 中处理尖括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740781/