我如何仅允许来自特定域的访问者?

时间:2010-01-27 20:28:34

标签: php

我有一个基于PHP的网站,使用优惠券代码。我可以限制搜索引擎查找优惠券代码的目标网页(例如,如果它是另一个网页上的广告)。

但我也想限制优惠券代码,以便它只能来自提供优惠券代码的网站。这样,如果有人找到代码,他们就不能将其发布在博客上。当然,让优惠券代码变得病毒化是一件好事,但我们需要限制它进行营销分析。

因此,如果我在www.examplead.com上刊登广告,并且有人通过点击广告来到我们的网站,我想允许优惠券代码生效。如果他们来自www.exampleblog.com或www.examplead.com以外的任何其他网站,我不想让优惠券代码有效。

我不需要帮助编写将禁用/启用优惠券代码的代码,但我需要帮助过滤某人来自哪里,然后根据该功能执行功能。

如果其他人有更好的方法来跟踪优惠券代码,请告知我们。

3 个答案:

答案 0 :(得分:2)

最简单的方法是检查$_SERVER['HTTP_REFERER']的值。它可以是伪造的,但它不需要另一方做任何事情。

答案 1 :(得分:1)

我也会尝试对$_SERVER['HTTP_REFERER']进行验证。如果您需要比这更强大的东西,我可能会建立一个联盟系统,其中密钥通过与您系统中特定联盟帐户对应的URL传递,这样您就可以知道哪些联属会员正在兑换哪些代码。 (并记录推荐人域名,以便您可以检测伪造品或附属机构是否滥用其代码)。

您可能需要注意的一件事是惩罚可能启动但未使用优惠券代码完成交易的用户,并稍后返回(但不能通过推荐人)。您可能只想将他们的帐户标记为可以在他们通过推荐人访问一次后随时使用该代码。

答案 2 :(得分:0)

您可以创建每日更改的动态哈希,并将其附加到该页面的链接。如果该哈希丢失或不正确,您可以选择不显示优惠券代码。哈希可以是使用链接网站的唯一标识符(盐)以及日期之类的动态标识符生成的(尽管如果服务器时间在任何时间都关闭,这可能会有问题,因此我建议使用替代值)。通过每天更改此值,您可以阻止任何人共享链接。在最坏的情况下,它会在24小时内“在野外”变为无效。

您可以使用$_SERVER['HTTP_REFERER']来扩充此系统,但由于上述原因它不可靠,因此您不会依赖它。