訪問者が特定のワードプレスのページから来た場合にのみ、ページへのアクセスを制限する必要があります。参照元ページに基づいてページへのアクセスを制限する
私はここから午前中に読んでいますが、私が見ているほとんどの回答は、偽装することができるため「ちょうど」参照者の使用を妨げています。
私は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');
}
?>
これは主に、私は、このページに
http://thisinterestsme.com/restricting-access-referrer/
をソリューションを追加することを計画。しかし、この記事によるとしています。この記事で答え
What is the best way to password protect folder/page using php without a db or username
に基づいています、
WPがセッションに
を使用していない現在のWPのバージョンに適用されなくなっWPセッションを使用する方法については、この命令ですか?
https://silvermapleweb.com/using-the-php-session-in-wordpress/
私のオプションは何ですか?
おかげ
私には間違っていません。あなたのサイトを閲覧するとどうなりますか? –
セッションが認証されたときにセッションを設定し、参照元を確認する代わりにそのセッションをチェックするのはなぜですか?リファラーヘッダーは、プライバシー上の理由から一部のルーターがクリアするため、必ずしも設定されているわけではありません。誰かがそのようなルータを持っている場合、彼らは決してページにアクセスすることができません。 –
@MatthiasMoritz何も間違っているわけではありませんが、私がここで見ているほとんどの回答は、偽装する可能性があるため、認証の形式として参照元を拒否しています。 – Wayne