1. ホーム
  2. security

[解決済み] トークン・パラメータを含むhttpsのURL:どの程度安全か?

2022-12-16 09:08:35

質問

私たちのサイトでは、ユーザーの個人情報(フォームから提供された)に基づいたシミュレーションを提供しています。私たちは、ユーザーがログイン/パスワードのアカウントを作成することを強制することなく、後でシミュレーションの結果を取得できるようにしたいと思います。

私たちは、電子メールにリンクを貼り、そこから結果を得られるようにしようと考えました。しかし、個人情報が危険にさらされているため、当然ながら、この URL を保護しなければなりません。

そこで私たちは、URLにトークン(40文字の文字と数字の組み合わせ、またはMD5ハッシュなど)を渡し、SSLを使用しようと考えています。

最終的に、そのようなメールが届くことになります。

こんにちは。

結果を https://www.example.com/load_simulation?token=uZVTLBCWcw33RIhvnbxTKxTxM2rKJ7YJrwyUXhXn

それについてどう思いますか?安全性は十分ですか?トークン生成のために何かアドバイスはありますか?httpsリクエストでURLパラメータを渡すのはどうでしょうか?

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

SSL は転送中のクエリパラメータを保護しますが、電子メール自体は安全ではなく、電子メールが宛先に届くまでにいくつものサーバーを経由してバウンスする可能性があります。

また、Web サーバーによっては、完全な URL がログ ファイルに記録されることがあります。データの機密性によっては、IT 担当者がすべてのトークンにアクセスできることを望まないかもしれません。

さらに、クエリ文字列を含む URL はユーザーの履歴に保存され、同じマシンの他のユーザーがその URL にアクセスすることを可能にします。

最後に、これを非常に安全でなくしているのは、URL があらゆるリソースに対するすべてのリクエストの Referer ヘッダーで送信され、サード パーティのリソースであっても送信されることです。たとえば、Google Analytics を使用している場合、Google に URL トークンを送信することになります。

私の意見では、これは悪い考えです。