【问题标题】:Preventing referral scams防止推荐诈骗
【发布时间】:2010-01-07 00:32:48
【问题描述】:

如何防止“推荐诈骗”?

例如,在我的一个基于 wordpress 的网站中,我突然注意到有人点击了我从未听说过的某个网站的链接。当我点击链接时,显然没有指向我的网站的链接。该网站正在销售产品,在这种情况下是书籍。所有 cmets 都遵循类似的语音模式,这些“cmets”的每个所有者的网站 URL 都是指向产品的 amazon.com 链接。

显然是个骗局,我很快就退出了该网站。

有什么办法可以防止这些通过 PHP 伪造的引用?

以某种方式判断它们是自动化的还是不是来自信誉良好的来源?

【问题讨论】:

  • 可以检查 User-Agent 字段,并忽略看起来不是 Web 浏览器的引荐。但是,如果他们很聪明,他们也会知道如何伪造User-Agent 字段!
  • Chris 绝对是对的,您可以检查 User-Agent 以确定它们来自哪里,然后建立一个白名单(在此处定义您的信誉良好的来源,通常是与黑名单相比的首选方式)或黑名单(已知的不良网站)来执行您的逻辑。
  • @Chris True,但他们可能确实伪造了它。 @Jay 有人这样做吗? @whoever 投票关闭,这是与编程相关的,属于这里,而不是服务器故障。我想通过 php 防止这些伪造...
  • 如果你想检查他们是否是人类,只需使用验证码。
  • Jimmie,如果你开始坚持 cakephp 可以做到这一点,我会在 gtalk 上对你大喊大叫。 ;)

标签: php referrer-spam


【解决方案1】:

恐怕你不能回答。无法控制推荐人发送给您的内容。

您可以按照 Chris 的建议来减少它。但作为一项规则,任何使用机器人故意创建此类垃圾邮件的人都会更改 User-Agent 字符串。哎呀,我这样做是为了防止我落后的愚蠢防火墙阻止我使用 Firefox,因为我们知道 IE 有多安全。

所以使用这种技术只会阻止很小的一部分。

要记住的重要一点是,任何人都可以伪造发送到您的服务器的任何内容、表单值、http 标头、cookie 甚至 IP 地址,所以不要相信任何东西,也不要担心。

不是您想要的答案,但不幸的是唯一真正的答案。如果你真的必须,那么你会得到推荐人,刮掉那个页面,如果没有找到链接,忽略它。但这是很多工作,忽略了 javascript 创建的链接(来自广告等)。

有时您会从损坏的浏览器或抓取软件甚至是搜索机器人中获得一个糟糕的推荐人。

【讨论】:

  • 哎呀,残酷的现实。谢谢!
  • 说得很好,因为每个人都可以操纵推荐。检查用户代理仅应被视为额外的保护层(例如:检查登录页面中的推荐以确保用户来自一个已知方向),并且不应用作最终检查。
【解决方案2】:

根据您对服务器的控制程度,您可能会发现安装mod_security(Apache 模块)很有用。 mod_security 充当 Apache 的防火墙,允许您阻止匹配(或不匹配)一组标准(包括用户代理、引用站点等)的请求。

这是一篇博文,其中包含有关使用 mod_security 处理推荐垃圾邮件的信息:
http://atomicplayboy.net/blog/2005/01/30/an-introduction-to-mod-security/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-25
    • 2017-01-12
    • 2013-02-25
    • 2017-05-14
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多