根据引荐网页

时间:2017-12-24 09:06:33

标签: php wordpress security authentication

仅当访问者来自特定的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/

我有什么选择?

由于

1 个答案:

答案 0 :(得分:0)

莫因,

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

if(strpos($ref, 'mysite.tld') !== false && $_GET['passkey'] == 'thePasskey')
{ ... }