Использование URL Rewrite 2.0 в IIS7 и очистка POST

У меня возникли проблемы с настройкой правил в URL Rewrite 2.0 с использованием IIS 7. Я работаю над веб-сайтом, который представляет собой комбинацию более современных материалов .NET 4.0, вплоть до классических материалов .ASP. Моя текущая задача — попытаться удалить некоторые определенные символы из пользовательского ввода, чтобы предотвратить атаки XSS.

Я получаю основной синтаксис:

<rule name="Rule Name" stopProcessing="true">
    <match url="myPage.asp" />
    <conditions>
        <add input="" pattern="" />
    </conditions>
    <action type="" />
</rule>

Я знаю, что мне нужно три шага: 1) Убедитесь, что мы смотрим на сообщение 2) Идентифицируйте любой из нескольких неверных символов с помощью регулярного выражения 3) Продолжите сообщение, удалив эти символы.

Первое, что я считаю, может быть решено следующим образом:

<add input="{REQUEST_METHOD}" matchType="Pattern" pattern="POST" ignoreCase="true" />

Что меня расстраивает, так это вторая и третья проблема.
Вторая проблема также является входной, но я застрял, пытаясь найти лучшую переменную {} для ввода. Прямо сейчас у меня есть это:

<add input="{REQUEST_URI}" pattern="[\\\|&lt;>]" />

но я знаю, что {REQUEST_URI} не подходит для этого. Я был на сайте перезаписи URL-адресов (http://www.iis.net/download/urlrewrite) и нашел список серверных переменных IIS 6.0 (http://msdn.microsoft.com/en- us/library/ms524602(v=vs.90).aspx), но я не могу найти хороший список переменных, доступных мне в 7.0 и выше, и что они означают. Это что-то, что кто-то где-то добавил в закладки и может передать?

Третий тоже вызывает у меня вопросы. Прямо сейчас в некоторых других правилах у меня установлено <action type="AbortRequest" />, но для этого я не собираюсь останавливать запрос, я хочу просто удалить неверные символы и продолжить POST. Настройка пользовательского правила в IIS выглядит многообещающе, но, похоже, он просто хочет перенаправить на URL-адрес, а не делать ничего другого. Это вообще возможно?

Я также должен отметить, что я рассматриваю управляемый модуль IIS в качестве альтернативы, чтобы получить то, что я ищу. Это звучит как лучший путь для кого-то?


person Drew McGhie    schedule 25.04.2012    source источник


Ответы (1)


Итак, получается, что вы не можете этого сделать и что я неправильно истолковал область применения приложения для перезаписи URL. Я должен смотреть на управляемый модуль IIS, и в будущем я вернусь к нему.

person Drew McGhie    schedule 26.04.2012