ASP.NET安全问题,可能与Umbraco有关,但很可能只是一般安全问题

时间:2009-12-03 22:19:07

标签: asp.net security webforms umbraco

我目前正在清理我的网站时遇到令人难以置信的令人沮丧的问题。在同一主机空间,我安装了Umbraco(ASP.NET)和Blab Lite(PHP聊天室)。前者与SQL 2005进行对话,后者与MySQL 5进行对话。

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

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

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

谢谢, 达尼。

3 个答案:

答案 0 :(得分:1)

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

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

就像我说的那样,我已经很久没有使用过Umbraco了,但希望即使你找到了解决办法也能帮到别人。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

是的,事件听众确实在工作。这让我觉得别的东西在这里很奇怪。我终于采取了一切,用一把更精细的梳子梳理了一切。首先,我比较了标准Umbraco 4发行版与主机发行版之间bin文件夹的内容。我认为最简单的方法是用一个新的覆盖每一个。然后我浏览了我安装的每个Umbraco包,并确保DLL也没问题。好吧,有1个DLL与Umbraco或我安装的软件包中的任何其他内容都不匹配 - EO.Web.dll!

似乎EssentialObjects有一个合法的东西,但我不认为Umbraco,我的代码或任何软件包实际上使用它!我删除它,我的Umbraco安装的每个部分仍然有效!我现在已经在ascx标记中设置了表单的可见性,因此它没有呈现 - 现在我们等着看,这是否是令人讨厌的恶意软件!