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

Вам необходимо добавить «; HttpOnly» в коллекцию файлов cookie ответа.
Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"
Таким же образом можно добавить другие опции, такие как expires, path и secure. Я не знаю волшебного способа изменить всю вашу коллекцию файлов cookie, но могу ошибаться.
HttpOnly очень мало делает для повышения безопасности веб-приложений. Во-первых, он работает только в IE (Firefox «поддерживает» его, но в некоторых ситуациях все же раскрывает файлы cookie для Javascript). Во-вторых, это предотвращает только «проездную» атаку на ваше приложение; он ничего не делает, чтобы помешать атаке с использованием межсайтовых сценариев сбросить пароли, изменить адреса электронной почты или разместить заказы.
Стоит ли его использовать? Конечно. Тебе это не повредит. Но есть 10 вещей, которые вы должны сделать, прежде чем начинать возиться с HttpOnly.
Я не верю, что это правда сейчас, в 2012 году
Если вы запускаете свои классические веб-страницы ASP на IIS 7 / 7.5, вы можете использовать модуль IIS URL Rewrite, чтобы написать правило, чтобы ваши файлы cookie были только HTTPOnly.
Вставьте следующее в раздел вашего 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 в куки-файлах sessionID, по крайней мере, для предотвращения XSS-атак.
Кроме того, в настоящее время (2-11-2013) все основные браузеры поддерживают ограничение HTTPOnly на файлы cookie. Сюда входят текущие версии IE, Firefox, Chrome и Safari.
См. Здесь дополнительную информацию о том, как это работает, и о поддержке различными версиями браузеров: https://www.owasp.org/index.php/HTTPOnly
Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""
Если вы используете IIS7 или IIS7.5 и устанавливаете надстройку URL Rewriting, вы можете это сделать. Вы можете создать правило перезаписи, которое добавляет «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>
Да, я знаю. Но добавление еще одного уровня защиты никогда не помешает.