Разрешить только определенный реферер PHP - PullRequest
0 голосов
/ 26 августа 2018

У меня есть этот код на моем сайте

<?php
// This is to check if the request is coming from a specific domain
$ref = $_SERVER['payskip.org'];
$refData = parse_url($ref);

if($refData['host'] !== 'payskip.org') {
  // Output string and stop execution
  die("Hotlinking not permitted");
}

echo "Executing code here";
?>

и он делает то, что должен делать, если вы заходите на сайт без данного реферера, будет отображаться «Горячая ссылка не разрешена», но если вы заходите на него с сайта payskip.org, он выполнит данный код.

Пока все хорошо, но если я обновлю свою страницу клавишей f5 или кнопкой перезагрузки, она снова выполнит код! Я хочу, чтобы он выполнялся только один раз, и если вы обновите его, обратная связь не будет разрешена.

1 Ответ

0 голосов
/ 26 августа 2018

Ну, ваш сервер нуждается в способе запомнить посетителя. Вы можете сделать это разными способами, но позвольте мне указать два наиболее распространенных:
1. Сессии
2. База данных.

Если вы заинтересованы только в прекращении взлома «обновить браузер», использование сеансов должно решить вашу проблему, но что происходит, когда тот же пользователь посещает ваш сайт в другое время после того, как сеанс должен был закончиться? ... В таком сценарии Возможно, вы захотите также вспомнить такого пользователя ... и вот тут база данных приходит на помощь.

...