根据引荐来源页面限制对页面的访问

问题描述 投票:1回答:1

只有当访问者来自特定的wordpress页面时,我才需要限制对页面的访问。

我从早上起就在这里读书,我看到的大多数答案都不鼓励使用“公正”推荐人,因为它可能是恶搞。

我不太了解php安全性和漏洞。我唯一的目标是“劝阻”用户为页面添加书签并直接访问它。我需要在我们的wordpress网站上验证访问者,并仅在他们进行身份验证时将其指向该页面。

目前我到目前为止所得到的是这个。

<?php

$ref = $_SERVER['HTTP_REFERER'];

$theOrigins = array(
'http://mysite.tld/?page_id=x1',
'http://mysite.tld/?page_id=x2');

$validRef = false;

if (in_array($ref, $theOrigins)) {
$validRef = true;
}


if (isset($_GET['passkey']) && ($_GET['passkey'] == 'thePasskey') &&  $validRef ) {
?>

<show html page>

<?php
} else {
//echo 'You are not supposed to access this page directly';
header('HTTP/1.0 403 Forbidden');
exit('Forbidden');
}
?>

这主要基于这篇文章中的答案

What is the best way to password protect folder/page using php without a db or username

我打算在此页面中添加解决方案

http://thisinterestsme.com/restricting-access-referrer/

但根据这篇文章,

Passing PHP Session Value

wp不使用会话

关于如何使用wp会话的说明是否不再适用于当前的wp版本?

https://silvermapleweb.com/using-the-php-session-in-wordpress/

我有什么选择?

谢谢

php wordpress security authentication
1个回答
0
投票

莫因,

如果你知道你想要做的是不安全(操纵HTTP标头HTTP_REFERER的可能性),你可以尝试不那么具体地说明允许的URL。也许只是检查合适的主机:

if(strpos($ref, 'mysite.tld') !== false && $_GET['passkey'] == 'thePasskey')
{ ... }
© www.soinside.com 2019 - 2024. All rights reserved.