私は HttpOnly Cookie と、XHR リクエストを TRACE メソッドと組み合わせて使用してサーバーからエコーバックされた Cookie 値を取得する可能性に存在する問題についていくつかの調査を行いました。
安全な Web アプリケーションの場合、現在、次の設定を行っています。
- ログイン時にセッション Cookie が送信され、セキュアおよび httpOnly プロパティが設定されます
- TRACE http メソッドがドメイン全体で無効になっている (「405 メソッドは許可されていません」を返す)
クロスサイト リクエスト フォージェリを回避するために、フォームの非表示フィールドにランダム キーを追加しました。このキーは、リクエストが受け入れられるように各 POST リクエストで返される必要があります。
これとは別に、許可されているタグと属性を選択するためにホワイトリストを使用して、すべての HTML がデフォルトでエスケープされますが、これが十分ではない理由を説明するために:次の方法で、Internet Explorer で JavaScript を渡すために使用できます。
<span style="width: expression(alert('Example'));"> </span>
そして、最後の質問です。誰か、このセットアップの潜在的な欠陥に対する欠陥や提案を指摘していただけますか? それとも、同じまたはまったく異なるアプローチを使用していますか?
既知の問題:
- すべてのブラウザが httpOnly をサポートしているわけではありません
- css JS 式をフィルタリングするだけでは不十分です。@import(external-style-sheet) も機能します