Обработка потенциально опасной строки запроса - PullRequest
1 голос
/ 18 июля 2011

Мой проект реализует поиск (по умолчанию HTML page) и перенаправляет на страницу поиска (ASPX page), и я использую строку запроса для передачи значения поиска.Я получаю potentially dangerous Request.QueryString value ошибку сервера, когда язык установлен не на английский (например, тайский, кириллица).

Есть ли способ справиться с этим со стороны клиента?В настоящее время я не могу найти способ справиться с этим на самой странице (Page_Load, Page_PreInit не запускается).

Вот код, который я использовал для перенаправления:

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

Ответы [ 2 ]

2 голосов
/ 18 июля 2011

Добавление validateRequest="false" к вашей .Net Page или файлу Web.config

OR

Вы можете кодировать свои URL-адреса, добавив encodeURIComponent:

function Search()  {
    var searchString = document.getElementById('txtSearch').value;
    location.href = "/Search.aspx?search=" + encodeURIComponent(searchString);
}
2 голосов
/ 18 июля 2011

Если ваши данные будут выглядеть примерно как код, вам, возможно, придется отключить эту проверку;но тогда вам нужно быть действительно уверенными в своей обработке кода, в частности во избежание атак XSS и SQL-инъекций.Вы должны иметь возможность установить в aspx validateRequest=false отключение для каждой страницы:

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

или глобально в web.config, если вам это нужно везде.

...