【发布时间】:2018-06-06 03:52:29
【问题描述】:
只有当访问者来自特定的 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 session 的说明是否不再适用于当前的 wp 版本?
https://silvermapleweb.com/using-the-php-session-in-wordpress/
我有什么选择?
谢谢
【问题讨论】:
-
在我看来并没有错。如果您浏览您的网站会发生什么?
-
为什么在他们通过身份验证时不设置会话并检查而不是检查引荐来源网址?并不总是设置引荐来源标头,因为某些路由器出于隐私原因将其清除。如果有人有这样的路由器,他们将永远无法访问该页面。
-
@MatthiasMoritz 没有错,但我在这里看到的大多数答案都不鼓励将引用者作为身份验证形式,因为它可能是欺骗性的。
-
@MagnusEriksson 这是计划,但我提供的链接之一说 wp 没有会话。我引用了帖子“WordPress 核心不使用 PHP 会话。WordPress 平台是完全无状态的,不支持使用 cookie 之外的会话来保持用户登录。”
-
没有阅读完整的文章,但是是的,类似的。
标签: php wordpress security authentication