8

我有一个接受来自远程站点的 POST 的页面。我想检测这些 POST 来自的域。我意识到它可以被欺骗,但总比没有好。我尝试访问 HTTP_REFERER 变量,但它只返回 null。

该页面接受来自 PayPal(即时支付通知)和其他支付网关等来源的 POST。

如何获得转介电话?

4

4 回答 4

9

您正确拼写了Referer。它应该是:

$_SERVER['HTTP_REFERER']
于 2011-03-15T03:06:20.640 回答
6
$_SERVER['HTTP_REFERER'] 

使用单个 R,尝试 var_dump($_SERVER) 了解更多信息。

于 2011-03-15T03:06:41.477 回答
2

这对我很有效:

https://stackoverflow.com/a/17958676/2635701

<form action="http://www.yourdomain.com/subscribe" 
   method="POST" 
   onsubmit=
      "document.getElementById('www.yourdomain.com.referrer').value=window.location;" >
    <!-- hidden input for field starts with a domain registered by you 
    just so that it's unlikely to clash with anything else on the page -->
    <input type="hidden" id="www.yourdomain.com.referrer" name="referrer"/>
    your email: <input name="email" type="text"/>
    ... rest of form ...
    <input type="submit" value="Subscribe"/>
</form>
于 2014-01-15T17:00:42.690 回答
2

您说得对,引荐来源网址很容易被欺骗,但是有更好的解决方案。阅读他们提到验证机制的ipn 文档。永远不要相信用户。

于 2011-03-15T03:09:27.927 回答