只有当访问者来自特定的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/
但根据这篇文章,
wp不使用会话
关于如何使用wp会话的说明是否不再适用于当前的wp版本?
https://silvermapleweb.com/using-the-php-session-in-wordpress/
我有什么选择?
谢谢
莫因,
如果你知道你想要做的是不安全(操纵HTTP标头HTTP_REFERER的可能性),你可以尝试不那么具体地说明允许的URL。也许只是检查合适的主机:
if(strpos($ref, 'mysite.tld') !== false && $_GET['passkey'] == 'thePasskey')
{ ... }