joomla 1.5管理文件夹令牌

时间:2013-10-29 18:36:12

标签: php joomla

我正在努力强化Joomla 1.5+网站上的管理员登录,虽然客户端可能很快就会升级 - 但它还没有发生。我使用以下代码编辑了administrator / index.php:

/* Block access to administrator
--------------------------------------------- */
$user =& JFactory::getUser();
$secretkey = 'mytoken';
$redirectto = 'location: http://www.myurl.com';
$usertype = 'Registered';

//Check if the user is not logged in or if is not a super user:
if ($user->guest) { //|| (!$user->guest && $user->usertype == $usertype) ) {
//Check if the secret key is present on the url:
if (@$_GET['access'] != $secretkey) { header($redirectto); }
}
/* --------------------------------------------- */

这是基于我在网络上找到的某些代码。目前,键入www.myurl.com/administrator/或www.myurl.com/administrator/index.php会重定向到主页。 www.myurl.com/administrator/index.php?access=mytoken显示登录信息。登录尝试次数已经下降,但RSFirewall!组件仍然每天报告几次。

在我评论第一个if语句的下半部分之前,代码总是重定向无所谓...

他们如何仍然访问登录页面?我能做得更好吗?

1 个答案:

答案 0 :(得分:0)

为什么不使用提供此功能的众多插件之一,而不是黑客入侵?

在当前Joomla Extensions DirectoryJED)上,“Login Protection”中列出的许多产品都有Joomla 1.5版本,或者没有尝试Archived JED(适用于Joomla 1.5)您可以尝试Login Protection部分。

如果您的代码位于onAfterInitialise中的/administrator/index.php事件之后,则防火墙软件可能仍会记录访问权限。 onAfterInitialise事件是扩展程序可以“插入”Joomla的第一个地方!环境。

要避免任何扩展,您可能需要在此块之前使用您的代码:

// trigger the onAfterInitialise events
JDEBUG ? $_PROFILER->mark('afterInitialise') : null;
$mainframe->triggerEvent('onAfterInitialise');

各种安全插件通常会将自己附加到此事件中,并且首先使用非常低甚至负值来自行排序,这就是为什么它们在没有防火墙看到问题的情况下工作的原因。