Joomla访问控制和修改后的index.php

时间:2011-10-24 13:52:36

标签: joomla joomla1.5 access-control

我正在使用Joomla网站,其index.php文件已被修改以更改默认访问控制行为。记住这是Joomla 1.5,这一行:

$mainframe->authorize($Itemid);

已包含在查找远程IP的某些条件代码中,如果IP在白名单范围内,则不会调用authorize() [*]。这是为了允许无需登录即可无缝访问某些资源。

虽然我是Joomla开发的新手,但我猜这不是最好的方式。首先,它可能意味着在未来Joomla升级的情况下重新修补index.php。拦截身份验证检查的最佳替代方法是什么?

[*]这是另一个谜团:IP管理通过名为“IP过滤器”的组件在前端进行。在components/com_ipfilter处有一个完全空的目录,但在administrator/components/com_ipfilter处有一个更有特色的目录。该组件将数据存储在名为kip_filters的表中(为什么'k'?),并且组件清单文件中列出的authorUrl会转到看似垃圾邮件的制药页面。一切都很令人担忧......

3 个答案:

答案 0 :(得分:2)

您正在寻找的是一个系统插件,不需要黑客攻击任何文件。您可以使用相当多的系统事件来触发插件并进行IP测试,然后确定是继续显示页面还是将访问者重定向到某种警告页面。

查看有关系统事件的文档 - http://docs.joomla.org/Plugin/Events/System

---更多细节---

查看API执行顺序,无论如何都会调用authorize()(http://docs.joomla.org/API_Execution_Order)。由于默认行为是调用authorize(),因此您将不得不欺骗它以返回正响应。

您的插件应该由onAfterInitialise触发,您应该操纵JUser。当您调用authorize()时,函数需要一个用户ID,它来自JUser对象和getuser()函数。您需要做的就是创建具有所需权限的用户,然后让插件设置用户ID,以便authorize()返回true。

答案 1 :(得分:0)

对于安全问题,你可以使用这些步骤,我也会给你一个很好的ip过滤器组件:

首先,这是joomla最重要的组件: http://extensions.joomla.org/extensions/access-a-security/site-security/site-protection/16363 它为您提供了最重要的方法来避免任何黑客攻击或垃圾邮件或PHP错误,并为您的joomla网站提供非常快速的升级:)它还提供了一个IP黑名单管理器,这是一个完整的解决方案。

希望这篇文章能给人一个亮点! 问候, Raeed Rabie

答案 2 :(得分:0)

我建议将您的表格前缀从jos_更改为随机的,例如hsfdaghadfg_

您还可以relocate your configuration file获得额外的安全保障。