Я делаю страницу загрузки, защищая ссылку для загрузки программного обеспечения от получения горячих ссылок. Я хочу, чтобы срок действия URL-адреса истек, если он прошел указанный срок.
Для кода, который я использую, требуется значение из URL-адреса. Я поигрался с этим кодом, но, к сожалению, мои навыки программирования не так хороши, поэтому я не мог понять, как его изменить. Я был бы очень признателен за любую помощь, которую я могу получить в этом.
localhost / example / index. php:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$salt = 'change me cause im not secure';
$path = '/download/tempfile.zip';
$timestamp = time() + 3600; // one hour valid
$hash = md5($salt . $ip . $timestamp . $path); // order isn't important at all... just do the same when verifying
$url = "http://localhost/example{$path}?s={$hash}&t={$timestamp}"; // use this as DL url
?>
<form action="download.php" method="get">
<input name="bode" type="hidden" value="<?php echo $url; ?>">
<input type="submit">
</form>
localhost / example / скачать. php:
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$ip = $_SERVER['REMOTE_ADDR'];
$salt = 'change me cause im not secure';
$path = $_SERVER['REQUEST_URI'];
$hashGiven = $_GET['s'];
$timestamp = $_GET['t'];
$hash = md5($salt . $ip . $timestamp . $path);
if($hashGiven == $hash && $timestamp <= time()) {
// serve file
} else {
die('link expired or invalid');
}
?>
localhost / example / download. php? bode = http% 3A% 2F% 2Flocalhost% 2Fexample% 2Fdownload% 2Ftempfile.zip% 3Fs % 3D86bc6c7959db1b3b2876a5d447c2528a% 26t% 3D1592559029
страница сгенерировала ошибку.
Notice: Undefined index: s in C:\xampp\htdocs\example\download.php on line 7
Notice: Undefined index: t in C:\xampp\htdocs\example\download.php on line 8
link expired or invalid
Какое решение?