Предварительно скомпилированный весь сайт все равно получает сообщение об ошибке “потенциально опасный запрос.значение строки запроса было обнаружено от клиента”
Я действительно искал и читал так много сообщений, говорящих о сообщении об ошибке "потенциально опасный запрос.значение строки запроса было обнаружено от клиента". Но я считаю, что моя проблема совершенно иная.
В моем файле web.config я уже определил два ключа ниже:
<httpRuntime requestValidationMode="2.0" /> <pages validateRequest="false" />
Итак, если я опубликую свой проект (asp.net webform) без использования опции Precompile все будет работать гладко, как я и ожидал.
Однако если я опубликую свой проект с опцией Precompile (precompile all site), то вышеприведенная ошибка всегда будет возникать при отправке формы.
Форма отправки настолько проста, что содержит один элемент управления вводом текста и одну кнопку отправки. И мое мнение текст
<script>alert(1)</script>
Итак, мой вопрос заключается в том, почему эта проблема возникает при сборке precompile publish build? Что-нибудь посоветуете?
Что я уже пробовал:
Поместите два ключа ниже в web.config, но это не решит проблему.
<httpRuntime requestValidationMode="2.0" /> <pages validateRequest="false" />
Richard Deeming
Эта тема с 2010 года[^] предполагает, что validateRequest
этот параметр игнорируется при предварительной компиляции сайта, если только вы также не выберете опцию "Разрешить обновление этого предварительно скомпилированного сайта".
Если вам нужно получить доступ к данным запроса без запуска проверки, используйте Request.Unvalidated
коллекции. NB: Это может сделать ваш сайт уязвимым для XSS, если вы должным образом не закодируете любые значения, считанные из этих коллекций, прежде чем отображать их.