2012-04-02 116 views
0

我需要获取用户向我的服务器发送ajax请求的完整域,并且它应该有点安全。 ThePhp,从ajax请求获取引用者

$_SERVER['HTTP_REFERER'] 

返回空白。 我应该使用什么功能? 在此先感谢。

+0

也许空白不是黑色? – 2012-04-02 13:15:21

+1

@AlexAmiryan,你知道这个解决方案吗? – funerr 2012-04-02 13:16:07

回答

4

某些浏览器不会将引用数据与XHR请求一起发送。引用者标题是可选的,并且可以伪造。所以:你不能

Same Origin Policy可能会为您提供所需的全部保护(尽管您尚未明确您的用例,因此很难说)。

+0

ajax请求确实有效(我通过php配置了它),但它没有获得远程域名。 – funerr 2012-04-02 13:17:12

+0

$ _SERVER [“HTTP_REFERER”]不是您应该信任的值。该值可以设置为用户喜欢的任何值。另外用户可以手动禁用引用者。尝试重写脚本以在没有引用者的情况下工作。但是,不要依赖引荐者的价值。 – TRD 2012-04-02 14:03:15

+0

@TRD那我该用什么? – funerr 2012-04-03 22:55:18

1

您的目标似乎是保护您的服务器API免受未经授权/过度请求的攻击/垃圾邮件。在这种情况下,您希望检查的所有内容都可能被欺骗,您可能需要尝试使用工作证明算法。

看一看http://hashcash.org

通过强制客户端“支付”(与计算周期)发送您的数据进行处理,你可以从你造成一个问题过滤掉一般的机器人。