2

Cookie の安全性と、Cookie を設定したアプリケーション以外のアプリケーションが Cookie を読み取ることができるかどうかを知りたいです。

サイトがいつでも読み取れる機密データを保存する Cookie を設定したいと考えています。

他のアプリケーションは、自分のアプリケーションが設定した Cookie を読み取ることができますか? その場合、Cookie に保存されているデータを暗号化する必要がありますか?

注: SSL にアクセスできません。

編集:保存したい情報はユーザーの詳細です。ホワイトレーベルのウェブサイトを作成しています。特定の URL (例: www.mysite.com/joebloggs) の要求に応じて、Joe Bloggs に関するユーザー データをクライアント マシンに保存したいと考えています。クライアントが www.mysite.com に戻ったときに、追跡できるように、Joe Bloggs のデータを Cookie から読み取ってもらいたいと考えています。

4

3 に答える 3

9

ユーザーのコンピューターで実行されているコード (ブラウザー アドオンを含む) は、常に Cookie の読み取りと書き込みが可能であり、それについては何もできません。(暗号化以外)

ネットワークをスニッフィングする人は誰でも、HTTPS 以外のサイトのすべての Cookie を読み書きできます (該当する場合)。

x.cloudapp.net他のドメインの Web アプリケーションは、兄弟ドメイン (および など)の限られた状況を除いて、Cookie の読み取りまたは書き込みを行うことができませんy.cloudapp.net(Cookie の投げ方を参照) 。

于 2012-05-21T15:07:03.093 に答える
1

機密データをCookieに含めることを避けることができれば、それが最善です。別の回答で述べたように、ユーザーのコンピューター上のあらゆるものが常に危険にさらされる可能性があります。

ただし、必要な場合は、常にデータを暗号化する必要があります。フォーム認証Cookieのデフォルトの暗号化は、Webアプリを実行するユーザーコンテキストとマシンキーを使用するDPAPIを介して行われるため、負荷分散された環境には最適ではありません。

その場合は、デジタル証明書(RSAなど)による暗号化を行う必要があります。

自分で管理するCookieの場合は、Crypto API、またはこのようなラッパーまたはユーティリティクラスを使用する必要があります。フォーム認証Cookieには、暗号化メカニズムを構成できる保護設定があります。

于 2012-05-21T15:28:45.837 に答える
1

SSL を使用するほどセキュリティに関心がない場合、簡単で比較的単純なオプションは、ユーザー用に新しい Guid を生成し、その Guid をデータベースに保存し、Guid を Cookie に書き込むことです。

クレジットカードや銀行などの機密性の高いものを保護するためにこれを使用することは絶対にありませんが、そのようなデータを保護する必要がある場合は、SSL が最低限必要です。

結局のところ、SSL なしでトラフィックをスニッフィングすることは可能です。そのため、ネットワーク経由で送信される Cookie は、悪意のある誰かによってスニッフィングされる可能性があります。その Cookie を使用してシステム上のユーザーを識別すると、そのユーザーになりすますのは簡単です。Guid を使用する利点は、誰かが 1 人の Cookie を見つけることができたとしても、パターンを推測して他の人の Cookie を特定することはできないため、1 人のユーザーが侵害される可能性がありますが、少なくともユーザー ベース全体が侵害されることはありません。 !

おそらく妥当なアプローチは、GUID と有効期限を生成し、両方を暗号化し、それを Cookie として設定することです。次に、ユーザーが Cookie を持って戻ってきたときに有効期限を確認し、定期的に GUID を変更します。繰り返しますが、これは決してネットワーク スニッフィングに対して安全ではありませんが、ある程度のセキュリティと、セッション間でユーザーを記憶する利便性を提供します。

于 2012-05-21T16:12:19.830 に答える