4

この質問は少し奇妙に思えるかもしれませんが、VCL の貧しい人々 のソリューションを使用して、リファラー (メイン) によって作成された署名付き要求 (共有秘密鍵、別名 HMAC の貧しい人々 のソリューション) を解析することは可能ですか?署名が正しく、(署名された) タイムスタンプの有効期限が切れていない場合にのみ、ワニスからコンテンツを提供しますか?

つまり、Amazon S3 の仕組みと同様に、定義された秒数で期限切れになる S3 オブジェクトへの署名付き一時 URL を簡単に作成できます。

注: ここでは、キャッシュ オブジェクトの有効期限についてではなく、クライアントの URL の有効期限について説明しています。

リファラーヘッダーをチェックせずに長期的なホットリンクを防ぐために、一時的な URL のみをユーザーに提供したい場合に便利です。

そのため、内部オブジェクトを期限切れにする VCL (できれば vcl_recv 内) の一時 URL に対する貧弱な解決策です)。VMODを作らなくても可能ですか?

編集:

Varnish を使用してコンテンツを承認する別の方法を見つけました。

http://monolight.cc/2011/04/content-authorization-with-varnish/

しかし、それはまだ私が達成したいことではありません。

よろしくお願いします!

4

2 に答える 2

3

はい、可能です。

本質的には、署名を検証し (ダイジェスト vmod)、ヘッダーからタイムスタンプを取り出し (regsub)、それを現在の時刻と比較する必要があります。

std.integer()タイムスタンプをキャストするために使用します。

https://www.varnish-cache.org/docs/trunk/reference/vmod_std.html#integer

VCLの組み込みnow変数を使用して、現在のタイムスタンプを見つけます。(now + 0s)Varnish に UNIX タイムスタンプを強制的に与えるようにしたい場合があります。

https://www.varnish-cache.org/docs/trunk/reference/vcl.html#variables

ダイジェスト vmod は github にあります。

https://github.com/varnish/libvmod-digest
于 2013-04-27T17:13:29.393 に答える
0

これにはすでに VMOD があります。

Varnish セキュア ダウンロード モジュール

于 2013-07-24T01:57:06.020 に答える