У меня небольшая проблема с приложением ASP.net - проверка запроса XSS (т. Е. Та, которая вызывает исключение «потенциально опасное значение request.form ...»), похоже, работает неправильно для нас.
У меня есть следующая простая тестовая форма на нашем сайте:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Test2.aspx.vb"
Inherits="Test2" %>
<form id="form1" runat="server">
<asp:textbox ID="Textbox1" runat="server" ></asp:textbox>
<asp:Button ID="btnSubmit" runat="server" Text="Uh oh" />
</form>
И следующее в нашем web.config для элемента httpRuntime:
<httpRuntime maxRequestLength="8192" />
Если явведите в текстовое поле следующий текст:
<script>alert('XSS!');</script>
Форма публикует сообщения без ошибок, где, как я ожидаю, произойдет ошибка с жалобами на «потенциально опасные ... и т. д.».Я вставил обработчик события click для кнопки и вызвал Request.ValidateInputs (), и все еще без проблем.Наблюдая за переменной Request, я вижу вызов свойства ValidateInputCalled, который имеет значение даже до моего явного вызова ...
Мы нацеливаемся на v4.0 платформы, и я обнаружил, что если я отредактирую элемент httpRuntimeвот так:
<httpRuntime maxRequestLength="8192" requestValidationMode="2.0" />
Тогда проверка запроса страницы начинает работать так, как я ожидал (но я не думаю, что это должно быть необходимо).Единственная другая вещь в конфигурации, подобной этой, - это набор правил, таких как этот:
<location path="Admin/News.aspx">
<system.web>
<httpRuntime requestValidationMode="2.0"/>
</system.web>
</location>
, которые мы используем, чтобы позволить нам отключить проверку для выбранного набора страниц (отключено на уровне страницы), где пользователю разрешено отправлять выбранный набор тегов HTML в своем тексте.
Это определенно работало ранее.Кто-нибудь знает, почему это может не работать сейчас?Я не хочу возвращаться в режим проверки запросов версии 2.0 для всего сайта.
Только что попробовал новый проект веб-сайта, одна страница, такая же, как указано выше, и ошибка проверки запроса ISобжиг.Наш web.config для исходного сайта довольно большой - кто-нибудь знает другие свойства в этом файле, которые могут повлиять на проверку запроса?Узел страниц в файле конфигурации выглядит следующим образом:
<pages enableEventValidation="false" enableSessionState="true"
enableViewStateMac="true"
viewStateEncryptionMode="Always"
controlRenderingCompatibilityVersion="3.5"
clientIDMode="AutoID">