Получение 500 внутренней ошибки сервера, когда у меня есть символ «%» в строке запроса - PullRequest
3 голосов
/ 28 января 2010

Я пытаюсь диагностировать проблему, с которой столкнулся клиентский сайт. В основном, когда вы выполняете поиск по адресам на их веб-сайте, вы можете указать символ % для поиска по шаблону. Например, вы можете найти Be%, чтобы вернуть Belfast и т. Д.

Это запрашивает базу данных, а затем перенаправляет вас на страницу результатов, передавая критерии поиска в строке запроса, например results.aspx?criteria=Search%20criteria%20is%20Be%

Это вызвало проблемы, если вы искали что-то вроде %Belf, так как %Be является зарезервированным символом в кодировке URL. Поэтому я закодировал его, чтобы заменить % на %25 (представление кодировки URL символа %). Это отлично работает на моем тестовом компьютере, где URL теперь results.aspx?criteria=Search%20Criteria%20is%20%25Be.

Однако по какой-то причине это не работает на веб-сайте наших клиентов, и я не могу понять, почему. На странице сохраняется ошибка:

Код ошибки: 500 Внутренняя ошибка сервера. Запрос был отклонен HTTP-фильтр. Обратитесь к администратору сервера. (12217)

каждый раз, когда вы ищете что-то вроде %Be %Fa %Fe и т. Д.

Кто-нибудь знает, есть ли настройка IIS для этого или что-то подобное?

Ответы [ 2 ]

3 голосов
/ 28 января 2010

Возможно, на вашем сервере установлена ​​ URLScan . URLScan перехватывает запросы и отклоняет их, если обнаруживает недопустимые символы. Он предназначен для защиты вашего сайта от вредоносных атак и внедрения SQL. Если вы не настроите его правильно, он отклонит совершенно разумные запросы. Посмотрите на фильтры ISAPI на вашем сайте и посмотрите, есть ли там URLScan.

2 голосов
/ 29 августа 2011

Может ли это решить ваши проблемы? Написано Зубайром Александром на http://blog.techgalaxy.net/archives/2521

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...