2017-01-18 5 views
2

だから私は、動的画像リサイザーを作成し、それを保護したいと思います。いくつかの値を検証する読み取り専用トークンを作成するにはどうすればよいですか?

高さ300、延長jpgとID SomeID、のは私だけ幅400に対して有効である必要があり

/SomeID/400x300/{MyToken}.jpg 

{MyToken}のような要求を取得するとしましょう。このトークンはクライアントによって編集可能ではないので、私はDOSのattac(1000個の組み合わせを要求する)を防ぐことができます。

私はクライアントがトークンを他のものに変更できないことを意味します。これは他のパラメータに対して有効です。

私が正しく思い出すと、ASP.NET Formauthentifcationには読み取り専用トークンを生成する忠告があります。私はこのようなものを探しています。

Formauthentifactionはどのように機能しますか?プリンシペはどのように呼ばれていますか?私は正しいキーワードは何か分からないので、私はGoogleで立ち往生しています。

私ができることは、File.Exists()を実行し、ファイルが存在しない場合はイメージを生成するHtmlHelperです。しかし、IOが高価なので、私は、要求にファイルを取得し、トークンが有効な場合は、画像を生成することによってFileNotFoundExceptionをキャッチしたいと思います。

+0

ストレージを最小化:トークンを生成するためにハッシュ化/暗号化を使用しています。 CPU使用率を最小限に抑えます。リソースごとにGUIDを作成し、GUIDとリソースの関係をテーブルに格納するだけです。 – Martheen

+0

私が暗号化に持っている問題は、somebodysが鍵を計算するとどうなりますか?塩をハッシュすると?よりダイナミックなものがあるか@Martheen –

+0

[AES](http://crypto.stackexchange.com/questions/1512/why-is-aes-resistant-to-known-plaintext-attacks)は、既知の平文に対して安全だと思われる攻撃。私は、サーバに秘密鍵/塩を格納し、それを暗号化/ハッシュするよりも、何がよりダイナミックになるのか分かりません。 – Martheen

答えて

2

Formauthentifactionはどのように機能しますか?プリンシペはどのように呼ばれていますか?

認証を使用するフォームの暗号化の種類は、例えば、設定によって異なります。HMACSHA1アルゴリズムを使用していますSHA1、へ

<system.web> 
    <machineKey validationKey="..." 
       decryptionKey="..." 
       validation="SHA1" 
       decryption="AES" /> 

それをデフォルトに。

単にID、サイズ&ファイル拡張子を暗号化トークンを生成するには、これは、暗号化の例と、ここで最も有名な質問です: Encrypt and decrypt a string

+0

インテレステイング、ありがとう。私はキーを生成すると思います。そして、私はFormsauthentificationのデフォルトのセキュリティを再考する必要があります...それは別のトピックです。 –

+1

彼が塩を生成するところのjbtules答えを参照してください。それはあなたが後にしている動的な良さです:http://stackoverflow.com/a/10366194/495455 –

関連する問題