如何根据随机 URL 字符串重定向用户?

How to redirect users based on random URL string?

出于安全考虑,我只需要向来自特定站点的用户显示页面,而不是直接访问者。

按照我目前的设置方式,将生成一个随机的 12 个字符的字符串并附加到 url。例如:

http://www.example.com?skey=a72bzy321bgf

skey 参数总是随机的,但总是有 12 个字符。所以基本上,如果我的 URL 有一个包含 12 个随机字符的 &key= 参数,页面就会正确显示。如果没有,访客会去别的地方。

关于如何将其编码到页面中的任何帮助,或者我应该如何 Google 找到必要的说明?我已经四处寻找,但还没有找到如何继续下去,我也不知道到底要寻找什么。因此,我们将不胜感激任何帮助。

谢谢!

您可以获得 URL 的密钥,然后检查您的函数,因为它在您的页面开始时有效

$key = trim($_GET['key']);

if(!isValidKey($key)){
  //die('Invalid Key'); //or
  header("Location: wrongkey.html");
  exit;
}

请求skey的值发现value.If的长度不等于12然后使用die()防止用户看到page.Use如下在目标页面中。(http://www.example.com/index.php?skey=a72bzy321bgf)

<?php 
    if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
        die("Soory,You came to this page in a Wrong Way.");
    }
?>
//Your Code will goes here.

您需要检查 $_GET['skey'] isset(), and if the string length 是否为 12 个字符。

if (isset ($_GET['skey']) && strlen($_GET['skey']) == 12) {
    // Get in
}
else {
    // Go away
}

这当然不是检查用户来自何处的正确方法,因为您的推荐人 URL 需要以某种方式将 skey 设置为 URL 的一部分.

您可以检查一下您的 $_SERVER['HTTP_REFERER'] isset() 吗?

谢谢大家!

根据你的所有建议,我结合了一些东西,到目前为止这对我来说非常有效:

<?php 
if(!isset($_REQUEST['skey']) || strlen($_REQUEST['skey']) != 12){
     header("Location: http://example.org/not-allowed.php");
     exit;
}
?>

谢谢!希望我能赞成你所有的回复。希望这对其他人有帮助。