3

私が達成しようとしているのは、ユーザー向けの 1 回限りのビデオ リンクを作成することです。リンクの有効期限が切れるビデオを見る人は、リンクが元の作成から 1 時間で期限切れになるとしましょう。

問題は、それをどうするかです。mod_rewrite を使用して、PHP と SQL に値を動的に渡すことができます

だから言ってみましょう

mysite.ltd/get_video/Jn12lM2NMZ21oMW312/11111111/The-Amazing-Spider-Man.mp4

内訳:get_videoは ですget_video.phpJn12lM2NMZ21oMW312は一時的なトークンで、11111111はタイム スタンプThe-Amazing-Spider-Man.mp4です。 はファイル名です。

私の結論に基づいて、トークン + タイム スタンプはビデオ ページのアクセス時に生成され、SQL に挿入されます。ユーザーがビデオ リンクを共有した場合、他のユーザーはそれにアクセスできなくなります。ユーザーと SQL のハッシュ トークンに。

これはそれを行う方法に関する私の見解ですが、より良い解決策があるかどうか疑問に思っていました。

4

2 に答える 2

0

トークンを正しく使用してその部分を取得しました。トークンは現在のセッションに対してのみ有効である必要があります。または、このリンクが同じページでビデオのストリーミングに使用されている場合は、リクエストごとにトークンを生成するだけです。安全なトークンを生成するには、config.php に保存することを好む秘密のソルト変数を使用できます。基本的に、どのフレームワークでもソルトが生成されます。

通常、ビデオ/ファイル名とIDをデータベースに保存します。ファイルパスを構築し、トークンを検証し、ヘッダーを使用してダウンロードを強制し、readfile()最初のコメントをチェックアウトして、そこにたくさんのコードを入れることができます。そうすれば、誰もあなたのファイルの場所を知りません。

于 2013-02-03T02:37:10.143 に答える
0

トークンとタイムスタンプを保存する必要さえありません。必要なのは、ユーザーの IP アドレスのハッシュ、タイムスタンプ、および適切な長いシークレット ソルト (すべてのユーザーに対して一意に生成されることが望ましい) です。

$token = somehash($ip_address . $timestamp . $secret);

$url = 'http://xxx/' . $token . '/' . $timestamp . '/filename';

ユーザーが URL にアクセスすると、ユーザーのデータでハッシュを再生します。等しく、リクエストの有効期限がまだ切れていない場合は、ビデオを提供します。

于 2013-02-03T02:31:26.903 に答える