【问题标题】:Allow and block sites with HTTP_REFERER使用 HTTP_REFERER 允许和阻止站点
【发布时间】:2013-11-13 19:05:00
【问题描述】:

我必须允许一些子站点链接我的页面,但我不想让主站点这样做。

主站点是 www.mainsite.com,这个站点不能链接我的页面,但必须允许子站点 www.mainsite.com/subsite 链接这些页面,就像网络上的所有其他站点一样。 简单来说,我想阻止那些从我的网站上窃取我的内容的网站,而无需询问权限或滥用我的带宽的网站。我试图这样做,但代码不起作用,有人可以帮助我吗?

代码:

<?php
$ref=$_SERVER['HTTP_REFERER'];

if (strpos($ref,'http://randomsite/allowedsite1')===0 || strpos($ref,'http://randomsite/allowedsite2')===0){} //If the referer comes from an allowed site, it must show the HTML below
if (strpos($ref,'http://randomsite/')===0 || strpos($ref,'http://anotherblockedrandomsite/')===0){
header('location: http://mycoolsite/nohotlink.png'); //if the referer comes from an blocked site, it redirects to an troll png
exit();
}
?>

<html>
My Password
</html>

【问题讨论】:

  • 一般而言,referer 并不是一个安全的东西。浏览器很容易伪造它。
  • 您无法控制其他网站上的内容。他们可以链接到他们想要的任何网站——你无法控制它。你问的是这个吗?如果没有,请更新问题并说明清楚。
  • 否则 if {} else {} 结构似乎更安全。如果被阻止的站点名称更改,则默认情况下将允许更改的名称。
  • HTTP_REFERER 并非由所有客户端发送,这不是访问控制的可行解决方案

标签: php redirect if-statement


【解决方案1】:

使用=== true=== false 而不是00可以解释为INT

另外,请联系其他网站并告诉他们删除您的内容。这是执行此操作的唯一方法,您几乎无能为力。

【讨论】:

  • 不工作,它适用于 randomsite/allowedsite1,但也适用于 randomsite/。 randomsite/ 必须被阻止...
  • 然后使用您的 htaccess 设置阻止列表。
猜你喜欢
  • 2021-12-26
  • 2019-10-28
  • 2011-12-20
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 1970-01-01
  • 2015-09-16
  • 1970-01-01
相关资源
最近更新 更多