1

我的项目实现了搜索(从默认HTML页面)并将重定向到搜索页面(ASPX页面),我正在使用查询字符串来传递搜索值。potentially dangerous Request.QueryString value当语言设置为非英语(例如泰语、西里尔语)时,出现服务器错误。

有没有办法从客户端处理这个问题?目前我找不到从页面本身处理这个问题的方法(Page_Load,Page_PreInit没有触发)。

这是我用于重定向的代码:

function Search()  {
    var searchString = document.getElementById('txtSearch').value;
    location.href = "/Search.aspx?search=" + searchString;
}
4

2 回答 2

2

如果您的数据看起来大致像代码,您可能必须禁用此验证;但是你需要真正确定你的代码处理,特别是避免 XSS 和 SQL 注入攻击。您应该能够在 aspx 中设置以在validateRequest=false每页的基础上禁用:

<%@ Page validateRequest="false" ...

如果您在任何地方都需要它,或者在 web.config 中全局设置。

于 2011-07-18T06:24:48.113 回答
2

添加validateRequest="false"到您的 .Net 页面或 Web.config 文件

或者

您可以对您的 url 变量进行编码,并添加encodeURIComponent

function Search()  {
    var searchString = document.getElementById('txtSearch').value;
    location.href = "/Search.aspx?search=" + encodeURIComponent(searchString);
}
于 2011-07-18T06:32:14.933 回答