c# - 在 ASP.Net 中处理尖括号

标签 c# asp.net httphandler httpmodule

当前,当尝试提交包含下拉列表的交易时,该下拉列表的文本包含尖括号,例如"<abcd>" , 自 ValidateRequest=true 以来我收到 500 个内部服务器错误默认情况下,并在到达页面处理程序之前抛出未处理的异常,因为它存在跨站点脚本问题。

HttpModule中有没有办法拦截和修改请求对象?或 Glabal.asax因为我知道 Request 对象是只读的。

我已经苦恼了将近三天,但无法得到具体的解决方案。 处理此类情况的最佳解决方案是什么?我也不想在客户端对其进行编码。

最佳答案

对列表框中的值进行编码:

<asp:ListItem>&lt;abcd&gt;</asp:ListItem>

[编辑] 我意识到我的解决方案不适用。内容可能由浏览器编码发送,并且也由下拉列表编码呈现(如果您使用标准数据绑定(bind))。我认为您唯一的选择是禁用请求验证。

这意味着您必须非常小心用户输入。为简单起见,使用 HttpUtility.HtmlEncode(txtXX.Text); 对每个用户输入进行编码;

更多信息请参见 Script Exploits Overview MSDN 页面。

关于c# - 在 ASP.Net 中处理尖括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8740781/

相关文章:

c# - 简单注入(inject)器注入(inject) IEnumerable<Func<T>>

c# - 如何使用javascript乘以文本框值?

c# - 如何将二进制图像从桌面应用程序发布到 ashx 处理程序并接收它?

c# - 也许monad只是为了什么?

c# - 缺少 Win32_Service

C#驱动2.0 Mongodb UpdateOneAsync

c# - Ember.js 查找从 webapi Controller 返回的第一个数据属性的模型

c# - 从辅助 webconfig 读取 AppSettings

asp.net - 有什么方法可以在.NET 中以编程方式添加 HttpHandler?

java - 如何减慢 API 请求速度?