ASP Classic で httpOnly Cookie を正確に構成するにはどうすればよいですか?
-
09-06-2019 - |
質問
従来の ASP クラシック サイトに httpOnly を実装しようとしています。誰もがそれを行う方法を知っていますか?
解決
Response.AddHeader "Set-Cookie", "mycookie=yo; HttpOnly"
その他のオプションとしては、 expires
, path
そして secure
この方法でも追加できます。Cookie コレクション全体を変更する魔法の方法は知りませんが、それについては間違っている可能性があります。
他のヒント
IIS 7/7.5 でクラシック ASP Web ページを実行する場合は、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
背景として、PCI 準拠の理由から HTTPOnly Cookie が必要です。PCI 標準関係者 (クレジット カードのセキュリティのため) は、XSS 攻撃を防ぐために、少なくともセッション ID Cookie に HTTPOnly を設定するようにしています。
また、現時点 (2013 年 2 月 11 日) では、すべての主要ブラウザが Cookie に対する HTTPOnly 制限をサポートしています。これには、IE、Firefox、Chrome、Safari の現在のバージョンが含まれます。
この仕組みとさまざまなブラウザ バージョンによるサポートの詳細については、ここを参照してください。https://www.owasp.org/index.php/HTTPOnly
Response Cookie コレクションに「;HttpOnly」を追加する必要があります。
Response.AddHeader "Set-Cookie", ""&CStr(Request.ServerVariables("HTTP_COOKIE"))&";path=/;HttpOnly"&""
HttpOnly は、Web アプリケーションのセキュリティを向上させることはほとんどありません。まず、これは IE でのみ機能します (Firefox はこれを「サポート」しますが、状況によっては依然として Cookie を Javascript に開示します)。もう 1 つは、アプリケーションに対する「ドライブバイ」攻撃を防ぐだけです。パスワードのリセット、電子メール アドレスの変更、注文などのクロスサイト スクリプティング攻撃を防ぐことはできません。
使ったほうがいいでしょうか?もちろん。それはあなたを傷つけることはありません。ただし、HttpOnly をいじり始める前に確認する必要がある 10 のことがあります。