Uploadifyを使用して画像をアップロードしていますが、すぐに気付いたのですが、SWF オブジェクトはブラウザーと同じセッションを共有していません。
セッションが必要だと思う理由は、「ハッカー」が別のユーザーの名前で画像をアップロードしたり、別のユーザーの画像を上書きしたりできないようにするためです。各画像をアップローダーに対して 100% プライベートにしたい
ここに私が見るオプションがあります
- アップロードとともにセッションIDをリクエストに追加します
いくつかの暗号化を使用して
- ランダムだが偽造するのが難しいイメージ ID を生成します (たとえば、ユーザー ID とシークレット + ランダムな UUID を使用するトークン サーバー側に署名します。
- ユーザー識別子をそのトークンにマップするテーブルに保存するよりも(トークンは画像IDです)
- それをUIに渡し、
- SWF オブジェクトはこのトークンをサーバーに渡します。このトークンがサーバーから送信されたものであり、ユーザーによって改ざんされていないことを確認できます。
- 次に、テーブルでそのトークンを検索し、そのトークンを使用してプレースホルダーの下に画像バイトを保存します。(そして、このトークンが本当にグローバルに永遠に一意であることを願う必要がありますが、これが統計的に 100% 正しいかどうかはわかりません。それとも、1 兆分の 1 の重複した画像 ID を持っている場合、アップロードに失敗し、ユーザーに再試行を強制しますよね?
私が考えていなかったより簡単な他のオプション(たとえば、SWF以外のソリューション、たとえばajaxソリューション?または、進行状況バーを忘れるだけです。それは価値がありません。現在の帯域幅では、ほとんどのユーザーは見てください)
GUIDを使用するだけです。推測するのは難しく、誰かが別のユーザーのGUID(セッションIDなど)を推測して、他の人の画像を上書きする楽しみを持たせたとしても、クレジットカードを盗んだわけではありませんよね?
質問
- オプション 1 を使用できますか? 安全ですか?
- そうでない場合、オプション 2 は問題ありませんか? 多すぎますか、それとも少なすぎますか?車輪の再発明ですか?クライアント側から偽造することができずに送信者を証明するセッションレスの安全な画像アップロードを取得する簡単な方法はありますか?
- それとも、プログレス バーに SWF を必要としない AJAX ソリューションがあるのでしょうか。