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