【问题标题】:Only allow specific referrer PHP只允许特定的referer PHP
【发布时间】:2018-08-26 10:25:31
【问题描述】:

我的网站上有这段代码

<?php
// This is to check if the request is coming from a specific domain
$ref = $_SERVER['payskip.org'];
$refData = parse_url($ref);

if($refData['host'] !== 'payskip.org') {
  // Output string and stop execution
  die("Hotlinking not permitted");
}

echo "Executing code here";
?>

它会做它应该做的事情,如果您在没有给定引荐来源的情况下访问该站点,它将显示“不允许热链接”,但如果您从 payskip.org 访问它,它将执行给定代码。

到目前为止一切都很好,但是如果我用 f5 或重新加载按钮刷新我的页面,它会再次执行代码!我希望它只执行一次,如果你刷新它应该返回不允许热链接。

【问题讨论】:

  • > '但是如果我用 f5 或重新加载按钮刷新我的页面,它会再次执行代码!我希望它只执行一次,如果你刷新它应该返回不允许热链接'所以实际的问题是'如何为用户执行一次代码'?
  • 嗨,你能澄清一下$ref = $_SERVER['payskip.org'];这行实际上在做什么吗?

标签: javascript php html web referrer


【解决方案1】:

嗯,您的服务器需要的是一种记住访问者的方法。您可以通过多种方式做到这一点,但让我说一下最常见的两种:
1. 会议
2. 数据库。

如果您只对停止“刷新浏览器”黑客攻击感兴趣,那么使用会话应该可以解决您的问题,但是当同一用户在会话结束后的某个其他时间访问您的网站时会发生什么?... 在这种情况下,您可能还想记住这样的用户......这就是数据库来拯救的地方。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-08-12
    • 2018-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-20
    相关资源
    最近更新 更多