1. 防止直接访问
组件的文件通常被Joomla应用调用,Joomla是组件的包容器,它提供了用户认证等许多功能。因为开发者通常都是在Joomla框架下测试组件,他们有时候会忘记文件被直接调用的可能性。对于一个hacks来说,他可以这样来访问你的组件:http:/ /www.example.com/components/com_yourcomponent/yourcomponent.php ,在Joomla 框架下你可能是这样访问的http:/ /www.example.com/index.php?option=com_yourcomponent
正如你看到的,PHP文件可以不通过Joomla框架而被直接执行。假如你的文件仅仅包含类和函数,没有任何执行代码,就像下面的代码,的确没什么可担心的。
<?php
class myClass {
[SomeFunctionsHere]
}
function myFunction() {
[SomeCodeHere]
}
?>
cracker只能看到空白页面。但是如果php实际执行什么,那么他就可能看到一些出错的信息,从而得到关于你系统的详细情况。在一些情况下,他甚至可能在你的系统上执行任何程序。
为了防止程序被直接访问,请在程序中加上以下代码:
Joomla 1.0
// no direct access
defined( '_VALID_MOS' ) or die( 'Restricted access' );
Joomla 1.5
// no direct access
defined('_JEXEC') or die('Restricted access');
每个php程序都必须加上,如果你不清楚是不是执行代码,那么就加上。