Как именно вы настраиваете httpOnly Cookies в ASP Classic?

Я хочу внедрить httpOnly на своих устаревших классических сайтах ASP. Кто-нибудь знает, как это сделать?


person Eduardo Molteni    schedule 10.09.2008    source источник


Ответы (5)


Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"

Другие параметры, такие как expires, path и secure, также могут быть добавлены таким же образом. Я не знаю никакого волшебного способа изменить всю вашу коллекцию печенья, но я могу ошибаться.

person Aaron Wagner    schedule 10.09.2008

Если вы запускаете свои классические веб-страницы ASP в IIS 7/7.5, вы можете использовать модуль перезаписи URL-адресов IIS, чтобы написать правило, чтобы сделать ваши файлы cookie только HTTP.

Вставьте следующее в раздел вашего web.config:

<rewrite>
    <outboundRules>
        <rule name="Add HttpOnly" preCondition="No HttpOnly">
            <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
            <action type="Rewrite" value="{R:0}; HttpOnly" />
            <conditions>
            </conditions>
        </rule>
        <preConditions>
            <preCondition name="No HttpOnly">
                <add input="{RESPONSE_Set_Cookie}" pattern="." />
                <add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>

Подробнее см. здесь: http://forums.iis.net/t/1168473.aspx/1/ 10

В фоновом режиме файлы cookie HTTPOnly требуются по причинам соответствия PCI. Специалисты по стандарту PCI (для безопасности кредитных карт) заставляют вас иметь HTTPOnly в файлах cookie с идентификатором сеанса, по крайней мере, чтобы помочь предотвратить атаки XSS.

Кроме того, в настоящее время (2-11-2013) все основные браузеры поддерживают ограничение HTTPOnly для файлов cookie. Сюда входят текущие версии IE, Firefox, Chrome и Safari.

Подробнее о том, как это работает и поддерживается различными версиями браузеров, см. здесь: https://www.owasp.org/index.php/HTTPOnly

person Brian Clark    schedule 11.02.2013

Вам необходимо добавить «;HttpOnly» в коллекцию файлов cookie Response.

person Gulzar Nazim    schedule 10.09.2008

Если вы используете IIS7 или IIS7.5 и устанавливаете надстройку перезаписи URL-адресов, вы можете сделать это. Вы можете создать правило перезаписи, которое добавляет HttpOnly к любым исходящим заголовкам Set-Cookie. Вставьте следующее в раздел ‹system.webServer› вашего web.config. Затем я использовал Fiddler, чтобы проверить вывод.

С уважением, Джереми

    <rewrite>
        <outboundRules>
            <rule name="Add HttpOnly" preCondition="No HttpOnly">
                <match serverVariable="RESPONSE_Set_Cookie" pattern=".*" negate="false" />
                <action type="Rewrite" value="{R:0}; HttpOnly" />
                <conditions>
                </conditions>
            </rule>
            <preConditions>
                <preCondition name="No HttpOnly">
                    <add input="{RESPONSE_Set_Cookie}" pattern="." />
                    <add input="{RESPONSE_Set_Cookie}" pattern="; HttpOnly" negate="true" />
                </preCondition>
            </preConditions>
        </outboundRules>
    </rewrite>
person Yvan Zhu    schedule 06.07.2020

HttpOnly очень мало делает для повышения безопасности веб-приложений. Во-первых, он работает только в IE (Firefox «поддерживает» его, но в некоторых ситуациях все еще раскрывает файлы cookie для Javascript). Во-вторых, это только предотвращает атаку "драйва" на ваше приложение; он ничего не делает, чтобы предотвратить атаку межсайтового скриптинга от сброса паролей, изменения адресов электронной почты или размещения заказов.

Стоит ли использовать его? Конечно. Это не причинит тебе вреда. Но есть 10 вещей, которые вы должны обязательно сделать, прежде чем начинать возиться с HttpOnly.

person tqbf    schedule 11.09.2008
comment
Да, я знаю. Но добавление еще одного уровня защиты никогда не помешает. - person Eduardo Molteni; 28.05.2009
comment
Я не верю, что это правда сейчас, в 2012 году. - person Philluminati; 16.08.2012