ユーザーが JavaScript プラグインを介してファイルを表示できるようにするサイトを作成しています。
これを行い、ファイルのセキュリティを維持するために、JavaScript プラグインにアクセスするたびに、元のファイルの 1 回限りの一意のコピーを作成します。
元のファイルは最大 30 MB ですが、これはシステムの複数のユーザーに対してどのように拡張されますか? 100 人がファイルのコピーを作成してアクセスするとします。
ユーザーが JavaScript プラグインを介してファイルを表示できるようにするサイトを作成しています。
これを行い、ファイルのセキュリティを維持するために、JavaScript プラグインにアクセスするたびに、元のファイルの 1 回限りの一意のコピーを作成します。
元のファイルは最大 30 MB ですが、これはシステムの複数のユーザーに対してどのように拡張されますか? 100 人がファイルのコピーを作成してアクセスするとします。
これを行うには、ユーザーに PHP スクリプトを参照するように htaccess 書き換えを作成します。
RewriteEngine On
RewriteRule ^download/([^/]+) /lib/download.php?file=$1 [QSA]
これにより、すべてのリクエストが に転送さyourdomain.com/download/anyfilehere.mp3?one_time_token=ABCDEFG
れ、 がlib/download.php
に設定さ$_GET['file']
れますanyfilehere.mp3
。パラメーターは、one_time_token
$_GET
使用したように転送され[QSA]
ます。
は次のdownload.php
ようになります。
<?php
if (!empty($_GET['file'])) {
if (!empty($_GET['one_time_token'])) {
if (TokenOK($_GET['one_time_token'])) { //Create a function called TokenOK where you look up the download token in eg. a database
$fileName = '/var/www/downloadfolder/' . $_GET['file'];
if (file_exists($fileName)) {
ExpireToken($_GET['one_time_token']); //Create a function called ExpireToken where you expire the token in eg. the database
readfile($fileName); //Read the file to the user
die();
} else {
die('Error: file not found');
}
} else {
die('Error: token is not OK');
}
} else {
die('Error: token is not specified');
}
} else {
die('Error: file is not specified');
}
?>
考慮事項:
readfile