1. ホーム
  2. javascript

[解決済み] JavaScriptでHttpOnlyクッキーを読み取る方法

2022-08-14 03:03:53

質問

編集

とはどういう意味ですか? 安全 cookie"はあいまいです。明確にするために

  1. を介して送信されるような安全な https:// プロトコルで送信されます。 ではなく プレーンテキストで送信されます。セキュアフラグと呼ばれるものです。

  2. クッキーがブラウザで実行されているJavaScriptによって読み取られることがないように、安全です。 ブラウザで実行されているJavascriptでは読み取れないということです。 document.cookie は動作しません。HttpOnly"フラグとして知られています。

この編集は、元の質問が2番目のケースについて尋ねていることを明確にするためのものです。


元の質問

JavaScriptでセキュアなクッキーを読み取る方法はあるのでしょうか?

私はそれを行うために使用しようとしました document.cookie を使ってみたところ、私が見る限りでは に、セキュアクッキーとHttpOnlyフラグについての記事があります。 を見る限り、この方法でセキュアクッキーにアクセスすることはできません。

どなたか回避策を提案していただけませんか?

どのように解決するのですか?

異なるブラウザー は、HTTPOnly の場合、異なるセキュリティ対策を有効にします。 フラグが設定されている場合、ブラウザによって異なるセキュリティ対策が有効になります。 たとえば、OperaとSafariは、javascriptがクッキーに書き込むのを妨げません。しかし、すべての主要なブラウザの最新バージョンでは、読み取りは常に禁止されています。

しかし、もっと重要なのは なぜ を読みたいと思うのでしょうか? HTTPOnly クッキーを読む必要があるのでしょうか? もしあなたが開発者なら、このフラグを無効にして、あなたのコードがxssのテストをしていることを確認してください。可能な限り、このフラグを無効にしないことをお勧めします。 このフラグは HTTPOnly フラグと "secure flag" (クッキーを https で送信するように強制する) は常に設定する必要があります。

もしあなたが 攻撃者 であるならば、あなたは セッションをハイジャックする . にもかかわらず、セッションを乗っ取る簡単な方法があります。 HTTPOnly フラグがあってもセッションを乗っ取る簡単な方法があります。セッションIDを知らなくても、セッションに乗ることは可能です。MySpace の サミーワーム がまさにそうでした。それは XHR を読み取るために CSRF トークンを読み取り、許可されたタスクを実行します。したがって、攻撃者は、ログオンしているユーザーができることはほとんど何でもできるのです。

人々はあまりにも多くの信頼を HTTPOnly のフラグを立てます。 XSS はまだ悪用される可能性があります。機密性の高い機能の周りにバリアを設定する必要があります。例えば、パスワードの変更には現在のパスワードが必要です。管理者が新しいアカウントを作成するためには、キャプチャが必要で、これは CSRF防止技術 で簡単に回避することはできません。 XHR .