0

目前,我在清理我的网站时遇到了一个令人难以置信的令人沮丧的问题。在同一个托管空间上,我安装了 Umbraco (ASP.NET) 和 Blab Lite (PHP Chatroom)。前者与 SQL 2005 对话,后者与 MySQL 5 对话。

在我的 Umbraco 网站上,我有一个带有报名表的留言簿。在回发时,它会进行 Akismet 检查,如果 Akismet 将其验证为垃圾邮件,则跳过相应 Umbraco 文档的创建/保存。

然而,最近我开始在我的留言簿节点下创建条目,这些条目被验证为垃圾邮件,但该文档仍被保存。我什至已经使用“display:none”隐藏了表单,但这些条目仍然被创建!我已经修改了 DLL 以包括记录到 Umbraco 文档事件日志,并且以某种方式创建这些仍然不会触发日志中的任何条目。我什至在单独的程序集中为 Document.BeforeSave 事件创建了一个事件处理程序,并且该事件处理程序没有捕获这些条目的保存。

对于垃圾邮件发送者如何创建这些条目,我真的很困惑。有没有人知道如何做到这一点,以及如何保护我的网站以防止这种攻击?

谢谢,丹妮。

4

3 回答 3

1

这似乎是一个旧帖子,但它没有标记为已回答,所以我会试一试。我有一段时间没有使用过 Umbraco,所以我不确定他们是否在最新版本中修复了这个问题,但问题在于 Umbraco 它本身。Document.BeforeSave() 在创建节点后被触发,这就是您的垃圾邮件过滤器不起作用的原因。将表单标记为不可见将不起作用,因为机器人将查看源代码并仅与它找到的表单字段进行模式匹配。在这里查看有关 Umbraco 问题的更多详细信息:

http://forum.umbraco.org/yaf_postst9312_BeforePublish-and-BeforeSave-Event-Handlers.aspx

就像我说的那样,我已经很久没有使用 Umbraco,但希望即使您找到了解决方法,它也会对某人有所帮助。

保罗

于 2010-09-20T01:40:14.653 回答
0

我的猜测是您的代码中存在一个错误,可以跳过 Umbraco 文档的创建/保存……尽管没有触发 Document.BeforeSave 事件很奇怪。您确定您的事件监听器也在工作(即他们是否注册了非垃圾邮件条目的保存?)

顺便说一句,设置“display:none”不会阻止垃圾邮件发送者,因为机器人通常会忽略 CSS。

于 2009-12-04T01:57:53.833 回答
0

是的,事件监听器确实在工作。这让我觉得这里还有一些奇怪的地方。我终于冒险了,用一把细齿梳子把这一切都搞定了。首先,我比较了标准 Umbraco 4 发行版和我主机上的 bin 文件夹的内容。我认为用新的覆盖每个是最简单的。然后我检查了我安装的每个 Umbraco 包,并确保 DLL 也很好。嗯,有 1 个 DLL 与 Umbraco 中的任何其他内容或我安装的软件包都不匹配 - EO.Web.dll!

EssentialObjects 似乎有一个合法的东西,但我不认为 Umbraco、我的代码或任何包实际使用它!我删除了它,我的 Umbraco 安装的每个部分仍然有效!我现在已经在 ascx 标记中设置了表单的可见性,所以它不会被渲染——现在我们等着看这是否是恶意软件的问题!

于 2009-12-05T11:11:25.557 回答