2011-06-01 2 views
2

У меня есть параметр строки, который я передаю с помощью запроса, я назову его: Request.QueryString ["x"]. Если я вручную ввожу URL-адрес, например: mypage.aspx? X = co% 3Csub% 3E2, asp.net не имеет шансов получить свое значение, прежде чем выбросить ошибку. Есть ли способ безопасно разрешить это значение сбрасывать и проверять с помощью моей собственной логики, не выключая validateinput?Значение URL-адреса asp.net вызывает ошибку

Проблема в том, что у нас есть собственные страницы ошибок, которые отправляют мне электронное письмо, когда они попадают. Боты избивают наш сайт, и иногда я прихожу на работу и получаю 500 писем от таких ошибок, которые ждут в моем почтовом ящике. Я хотел бы сделать свою собственную проверку и отобразить собственное сообщение об ошибке на странице, к которой они пытаются получить доступ.

Спасибо!

+0

В asp.net нет ничего, что приведет к ошибке, просто позвонив по этому URL-адресу. Возможно, у вас есть http-модуль или код в global.asax, который выполняет работу, когда запрос сделан? Какая у вас ошибка? – Craig

+0

С другой стороны: страницы ошибок должны быть обычными HTML-файлами, а не управляемыми .NET-страницами; обрабатывать ошибки с помощью обработчика событий OnError. –

+0

Крейг, ошибка: потенциально опасное значение Request.QueryString было обнаружено у клиента (x = "co 2"). Может быть, есть способ управлять вводом URL через другие средства? Эта ошибка происходит очень рано, прежде чем затрагивается одна строка кода страницы. – StronglyTyped

ответ

0

Я не думаю, что вы можете это сделать без , поворачивая validateinput с. Не могли бы вы как-то закодировать свой запрос, чтобы ASP проверил его?

0

Я считаю, что это невозможно без проверки правильности ввода. Возможно, вы можете изменить свой вариант на странице 500, чтобы не отправлять по электронной почте исключения этого типа

Смежные вопросы