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

本文关键字:查询 字符串 危险 处理 | 更新日期: 2023-09-27 18:02:50

我的项目实现搜索(从默认的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;
}

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

添加validateRequest="false"到您的。net页面或Web。配置文件

你可以编码你的url变量,添加encodeURIComponent:

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

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

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

或在web中全局。