Отказ в доступе к странице по ссылкам - PullRequest
0 голосов
/ 18 февраля 2012

Вот где я нахожусь:

  1. У меня есть плагин Wordpress, который позволяет использовать подписки, и использует Paypal IPN. Этот плагин запрещает доступ к определенным страницам в зависимости от наличия у пользователя активной подписки.

  2. У меня есть другой плагин, который позволяет единовременно оплачивать другую услугу. Это переводит пользователя на Paypal и перенаправляет его на страницу, где он может загружать видео. Эти видео могут быть загружены только после оплаты, но любой может получить доступ к странице по прямому URL ...

Как я могу ограничить доступ к этой странице загрузки?

Ответы [ 2 ]

1 голос
/ 18 февраля 2012

Я предполагаю, что вы используете что-то вроде этого в форме PayPal:

<input type="hidden" name="return" value="http://mydomain.com/verify.php">

Если это так, на этой странице: http://mydomain.com/verify.php вы должны проверить правильность транзакций. Уведомление о мгновенном платеже - примеры кода материал, верно? Хорошо, если эта проверка недействительна, вы отказываетесь от дальнейшей обработки (загрузки видео).

В противном случае вы перенаправляете, скажем, http://mydomain.com/upload.php:

header('Location: http://mydomain.com/upload.php') ;

Теперь на странице загрузки, которую вы помещаете вверху:

if ($_SERVER['HTTP_REFERER'] != 'http://mydomain.com/verify.php')
{
    die('get out of here!');
}
1 голос
/ 18 февраля 2012

Так что я не уверен, если вы хотите сделать это с помощью JavaScript или PHP ... PHP будет более надежным (люди могут отключить JavaScript), но в конечном итоге, реферер может быть изменен пользователем, если они действительно стремится обойти любые меры, которые вы приняли, поэтому имейте это в виду при реализации этого.

Лучшим способом было бы просто иметь оператор if, проверяющий реферер, и, если он не является приемлемым реферером, просто перенаправить их.

<SCRIPT LANGUAGE=JAVASCRIPT TYPE="TEXT/JAVASCRIPT">
<!-- Hide script from old browsers
if (document.referrer != '[Only Allowed Referrer URL]')
{
    window.location = "http://not.allowed.to.view.site";
}
//-- Stop hiding script -->
</SCRIPT>

или

<?php

if ($_SERVER["HTTP_REFERER"] != "[Only Allowed Referrer URL"])
{
    header( 'Location: http://not.allowed.to.view.site' ) ;
}

?>

Я не полностью протестировал приведенный выше код, но вам нужно что-то подобное. По сути, если это не из «разрешенного» реферера, перенаправьте на страницу с ошибкой.

Опять же, использование URL-адреса реферера для запрета или предоставления доступа к странице не так надежно, но если вы хотите это сделать, вам нужно что-то подобное. Также будьте осторожны с такими вещами, как URL может иногда иметь "www." в начале иногда не может. Могут быть варианты URL, которые вы захотите учесть в своем утверждении if.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...