php如何实现,判断来源网页的唯一url,只能这个url访问本页面,能支持https开头的

php如何实现,判断来源网页的唯一url,只能这个url访问本页面,能支持https开头的!
并且不能直接输入网址访问
谢谢。解决有红包

说实话没有完全明白你的意思,不知道我是否有理解不对的地方。下面是我的实现功能点,不知道是否符合你的要求哈。

  • 可以获取来源网页的Referer字段,使用$_SERVER['HTTP_REFERER']可以获取来源网页的URL。
  • 检查Referer是否合法,检查该URL是否是允许访问的唯一URL,如果是HTTPS URL还需要检查协议是否正确。
  • 如果来源URL不合法,可以header('HTTP/1.1 403 Forbidden')禁止访问。
  • 在允许的来源URL站点的链接中设置target="_blank"属性,让他们在新标签中打开本页面,以隐藏URL并防止直接访问。
$referer = $_SERVER['HTTP_REFERER'] ?? '';
$allowed_url = 'https://example.com/';   // 允许的来源URL

if ($referer) {
    $referer_host = parse_url($referer, PHP_URL_HOST);
    $allowed_host = parse_url($allowed_url, PHP_URL_HOST);
    if ($referer_host != $allowed_host) {
        header('HTTP/1.1 403 Forbidden');
        die('Forbidden: Invalid referer host'); 
    } 
} else {
    header('HTTP/1.1 403 Forbidden');
    die('Forbidden: No referer specified');

如果要判断来源网页的唯一URL,你可以使用$_SERVER['HTTP_REFERER']来获取来源网页的URL。但是需要注意的是,$_SERVER['HTTP_REFERER']并不是100%可靠的,因为有些浏览器或插件可能会禁用这个功能或者伪造这个值。
另外,你可以通过其他方式来增加判断来源网页的安全性,比如使用会话(session)或token机制。具体实现步骤如下:
1、在访问页面时生成一个唯一的token,并将其存储在会话(session)中或者通过隐藏字段等方式嵌入到表单中。
2、检查$_SERVER['HTTP_REFERER']的值是否存在且与你期望的来源网页URL相匹配。
3、检查会话(session)或表单中的token是否存在且与生成的token相匹配。
如果以上两个条件都满足,那么允许用户访问页面;否则,拒绝访问。可以看下下面这个案例

session_start();

// 生成一个唯一的token
\$token = uniqid();

// 将token存储在会话(session)中
\$_SESSION['token'] = \$token;

// 检查HTTP_REFERER的值是否与你期望的来源网页URL相匹配
\$expectedReferer = 'https://example.com/';
if(isset(\$_SERVER['HTTP_REFERER']) && \$_SERVER['HTTP_REFERER'] === \$expectedReferer) {
   // 检查会话(session)中的token是否存在且与生成的token相匹配
   if(isset(\$_SESSION['token']) && \$_SESSION['token'] === \$token) {
      // 允许访问页面
      echo '欢迎访问页面!';
   } else {
      // token不匹配,拒绝访问
      echo '非法访问!';
   }
} else {
   // 来源网页URL不匹配,拒绝访问
   echo '非法访问!';
}