处理潜在危险的查询字符串

时间:2011-07-18 06:20:19

标签: c# javascript asp.net .net-2.0 request.querystring

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

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

以下是我用于重定向的代码:

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

2 个答案:

答案 0 :(得分:2)

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

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

或web.config中的全局,如果你在任何地方都需要它。

答案 1 :(得分:2)

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

OR

您可以对您的网址变量进行编码,添加encodeURIComponent

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