【问题标题】:How to check Referral URL when HTTP_REFERER is NULL?当 HTTP_REFERER 为 NULL 时如何检查引用 URL?
【发布时间】:2014-09-08 06:14:48
【问题描述】:

我正在构建一个 API,并打算允许来自特定域的 API 调用。我正在使用“curl”运算符进行 API 调用而不设置标头:

curl_setopt($ch, CURLOPT_HEADER, 0);

所以,当我检查 $_SERVER['HTTP_REFERER'] 时,它是“NULL”

现在,如何在 PHP 中检查调用是否来自特定域?

谢谢

【问题讨论】:

  • 它(永久错误)拼写为HTTP_REFERER

标签: php curl http-referer


【解决方案1】:

您必须检查特定域在 DNS 中是否代表$_SERVER['REMOTE_ADDR']

<?php
$ip = gethostbyname('www.example.com');
$valid_call = $ip == $_SERVER['REMOTE_ADDR'] ? true : false;

记住,永远不要相信 HTTP 标头。它们可能会被操纵,而 IP 可能不会。

【讨论】:

    【解决方案2】:

    有两种方法可以通过 cURL 在标头中传递 REFERER,

    我。手动CURLOPT_REFERER

    curl_setopt($ch, CURLOPT_REFERER, 'http://example.com');
    

    二。自动 或使用 CURLOPT_AUTOREFERER

    curl_setopt($ch, CURLOPT_AUTOREFERER, true);

    cURL setopt docuemntation

    【讨论】:

      猜你喜欢
      • 2023-03-16
      • 1970-01-01
      • 2021-09-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多