4

現在の Web プロジェクトの URL について考えていました。ユーザーは、Web サイトを使用して画像などのさまざまなリソースにアクセスできます。URL は次のようになりますhttp://localhost:2143/p/AyuducjPnfnjZGfnNdpAIumehLiWaYQKbZLMeACUqgsYJfsqarTnDMRbwkIxWuDd

今、私は本当に高いパフォーマンスを必要としています.1つの方法は、認証のためにデータベースへの余分なラウンドトリップを省略し、推測できないURLに頼ることです.

Google はPicasa ウェブ アルバムでこれを行います。アルバムを非公開または非公開にすることができます。これにより、アルバムは保護されますが、写真自体は保護されません。スカーゲン (デンマーク) のこの写真を撮ります。http://lh4.ggpht.com/_Um1gIFfF614/TQpVMvN3hPI/AAAAAAAANRs/GY5DxrDPHUE/s800/IMG_4074.JPG、実際には非公開のアルバムにありますが、すべて見ることができます。

それで、あなたはこれについてどう思いますか?64文字の長さのランダムな文字列は「安全」ですか? 他のアプローチはありますか?


リソースへの各リクエストに対して認証を行うことを選択したとしましょう。ユーザーは somedomain.com のサイトにログインしており、そこで自分の、たとえばフォト アルバムにアクセスしています。認証を維持するために Cookie がドロップされます。

現在、実際の写真は、まったく別の URL で何らかの形式の CDN またはストレージ サービスを介して提供されています。

複数のドメイン間で認証をどのように維持しますか? 2 つのアルバムのコンテンツを異なるサーバーから配信できるとします。

4

5 に答える 5

5

計算する。62 の可能な値 (26+26+10: 大文字/小文字/数字) のアルファベットから暗号的にランダムに (rand() ではなく) 選択された 64 文字は、5.16e+114 の可能な値 (62^64) を生成します。1 秒間に 100 万通りの組み合わせを試すと、コードを推測するのに 1.63e+101 年 (グーゴルよりもモア) かかります。おそらくそれで十分です。短いものもおそらくかなり良いでしょう。

于 2010-12-16T18:21:02.467 に答える
1

64 文字 * それぞれ 6 ビットのエントロピー (Base-64 エンコーディングですよね?) は 384 ビットの鍵です。キーがオフラインでテストできる場合、それは今日の基準では非常に弱いと見なされます。実際のシステムを使用してのみキーをテストできる限り、それはおそらく非常に効果的であり、多くの不正なキーを試すクライアントをブロックするための積極的な対策を追加することもできます.

おそらく、サーバー ログ、ブラウザ ログ、リファラー ヘッダー、透過プロキシなどを通じてキーが公開されるリスクがはるかに高くなります。

于 2010-12-16T18:25:27.380 に答える
0

「不可解な」URLのみを使用することには間違いなくリスクがあります。それは本当にあなたが保護しようとしているものの種類に依存します。picasaを使用してください。これらは保護されている写真であり、銀行の記録ではないため、ランダムなクエリ文字列で問題ありません。さらに、Webサイトが大きくなるほど、攻撃対象領域が大きくなります。ページが1つしかない場合は、1つのURLが使用されているかどうかを確認するために、かなりのスキャンが必要になる可能性があります。しかし、そのようなページが数十万ある場合、攻撃者は正しいページを「推測」する可能性がはるかに高くなります。

だから、私はあなたのために本当に答えを持っていません、ただ「不可解な」URLアプローチに関するいくつかのアドバイス:それをしないでください。安全ではありません。

乾杯、

于 2010-12-16T18:19:00.767 に答える
0

これが私の2セントです。同様の問題がありました。私たちの最初のアプローチは、ファイルの名前をランダムだが一意の名前に変更し、その名前の複雑なキーを使用して双方向の暗号化を行うことでした。しかし、結局のところ、URL が誰かの手に渡ると、その情報のプライバシーを保証することはできないという事実にたどり着きました。最終的に、DB ベースの認証ルートに行き着きました。こちらをご覧ください

編集#1:CDNの問題については、解決策がどうなるかわかりません. しかし、マルトーナの言っていることが正しいとしても。CDN の目的の 1 つは、メイン サーバーからの負荷を軽減することです。リソースごとにサーバーに ping を返すことは、おそらくお勧めできません。

于 2010-12-16T18:28:35.217 に答える
0

推測できない URL などというものはありません。SSL 以外の接続で初めて使用した場合でも、ISP やプロキシ、キャッシュなど、必要な人なら誰でも見られてしまう可能性があります。ユーザー/顧客にプライベートな写真を「推測不可能」と信頼してもらいたいですか?

URL を推測できないようにすることは、一意の URL の有用性に時間制限がない限り (たとえば、有効期間が短い URL の場合)、セキュリティへの優れたアプローチとは言えません。

于 2010-12-16T18:21:23.757 に答える