3

我们在一个相当大的网站上遇到了一个带有垃圾邮件机器人的问题。看起来机器人正在创建用户帐户,然后发布导致各种垃圾邮件链接的日记条目。

看来他们以某种方式绕过了我们的验证码——要么它已被破解,要么他们正在使用另一种方法来创建帐户。

我们希望为这些帐户进行电子邮件激活,但距离实施此类更改还有大约一周的时间(由于日程繁忙)。

但是,如果他们在站点的某处使用 SQL 漏洞利用并执行整个跨站点脚本操作,我觉得这还不够。所以我的问题是:

如果他们正在使用某种 XSS 漏洞,我该如何找到它?我正在尽我所能保护语句,但同样,它是一个相当大的站点,我需要一段时间来积极清理 SQL 语句以防止 XSS。你能推荐什么来帮助我们的情况吗?

4

3 回答 3

3

1)如上所述,reCAPTCHA是一个好的开始。

2) Askimet是在垃圾邮件发布之前标记垃圾邮件的好方法。这是 Wordpress 用来阻止垃圾邮件的方法,而且非常有效。然后,您可以根据结果拒绝或排队审核条目。它的 API 也非常易于使用。(如果你需要的话,我有 PHP 代码)。尽管我确信您可以开始使用免费版本,但您可能需要商业许可证。

3) 验证电子邮件地址绝对是一个好主意,因为它需要一个有效的电子邮件帐户,而许多垃圾邮件发送者没有。只要确保您使验证电子邮件地址变得容易,就好像它太难了,它也会将合法用户拒之门外。

于 2010-03-12T16:00:16.240 回答
2

如果机器人在某处利用脚本中的漏洞,那么日志中应该有证据。检查直接 POST 到用户创建脚本和日记条目创建脚本,在命中之前没有通常的“正常”冲浪活动:机器人可能只对网站进行了一次拖钓,并绕过了拉下表单并假装填写的步骤在查询字符串中查找带有明显 XSS 类型数据的 GET 请求。

您还可以在表单内的隐藏字段中嵌入一个随机令牌,并要求该令牌存在,以便激活/发布通过。如果机器人只解析一次您的注册脚本并进行直接发布,这将阻止它们运行,直到机器人创建者赶上并寻找令牌。但它会给你一些喘息的空间来实施一个更好的系统。

如果您的用户帐户表上没有某种类型的创建时间时间戳,请放入一个并让服务器创建时间戳,而不是您的用户脚本。通过这种方式,您可以缩小扫描日志以查找机器人活动的时间段,并查看它们在做什么。如果不出意外,您可以阻止机器人发布的 IP。

于 2010-03-12T16:04:53.720 回答
2

我很惊讶有人可以建议 Akismet 并被接受为答案:

于 2011-03-16T08:18:40.537 回答