У меня было немного отзывов от некоторых людей с угрозами и уязвимостями, связанных с веб-сайтами, возвращающими коды ответа HTTP 500. По сути, совет заключается в том, что необходимо принять все возможные меры, чтобы сервер не выбрал 500 (то есть обширную проверку ввода формы), которая в порядке.Подавление HTTP-ответов HTTP
Однако совет также предположил, что попытки скомпрометировать безопасность с помощью таких средств, как вставка тега в случайную строку запроса, вызывающую проверку запроса ASP.NET для запуска или манипулирования видовым состоянием, также не должны возвращать HTTP 500. Очевидно, что родная структура поведение заключается в том, чтобы интерпретировать запрос и, возможно, переходить на страницу пользовательских ошибок, но даже это вернет 500 ответов.
Поэтому я размышляю над тем, как подойти к этому. Есть ли способ настроить приложение на уровне .NET или IIS, чтобы вернуть HTTP 200, когда поднят 500? Или это станет упражнением по кодированию на уровне global.asax в одном из событий приложения? Есть ли другие последствия для рассмотрения?
BTW, обоснование со стороны безопасности заключается в том, что приложения, которые возвращают HTTP 500, могут рассматриваться как «низко висящие фрукты» ботами, случайным образом сканирующими на наличие уязвимостей и вызывающими дальнейшую злонамеренную деятельность. Я лично не убежден, что изменение кодов ответов дает любые реальные выгоды в области безопасности, но я рад помочь советам профессионалов.
Как никогда не бросать код ошибки 500, чтобы вы стали более безопасным? Не звучите правильно, если вы не вставляете информацию об отладке на страницу с ошибкой. – Schwern
Я говорю о приложениях с настраиваемыми ошибками и не обнаруживаются данные отладки или трассировки. Как я уже сказал выше, позиция заключается не в том, что она делает приложение более безопасным, а скорее, что делает его менее заметным в качестве потенциального кандидата для попыток вторжения. –
Существует множество других советов о том, какое приложение вы используете, помимо страницы с ошибкой (шаблоны url, имена полей формы, стили HTML, пользовательские заголовки HTTP ...), поэтому я не знаю, насколько реальное значение безопасности подавляет пользовательский интерфейс приложения ошибка страница есть. Даже если вы скрываете приложение, которое используете, его просто обфускация. Конечно, «все возможные меры» не должны приниматься и, конечно же, не должны лгать клиенту о наличии ошибки. У MarkR есть лучший ответ, создайте общую, статичную страницу с ошибками 500 сайтов, такую как щебетать кита Twitter или гневный единорог Гитуба. – Schwern