Joomla!-开源天空

2008-10-08
首页 专栏热点 Joomla! 源代码分析 开发安全的Joomla组件,插件和模块(二) 防止直接访问


开发安全的Joomla组件,插件和模块(二) 防止直接访问

E-mail

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程序都必须加上,如果你不清楚是不是执行代码,那么就加上。

相关文章:
Joomla相关文章模块的改进--相关文章的插件
Joomla-开源天空的首页恢复
Joomla 缓存应该支持单一页面,或者菜单
开发安全的Joomla组件,插件和模块(九) 怎样获取原始组件的输出
开发安全的Joomla组件,插件和模块(八) 怎样获取原始组件的输出
开发安全的Joomla组件,插件和模块(七) 检查用户权限
开发安全的Joomla组件,插件和模块(三) 防止远程文件包含
开发安全的Joomla组件,插件和模块(一) 序言
Joomla 怎样判断用户在访问首页
Joomla 如何采用缓存加速你的代码(二)


收藏此文章:
Digg! Reddit! Del.icio.us! JoomlaVote! Google! Live! Facebook! StumbleUpon! Yahoo! Free social bookmarking plugins and extensions for Joomla! websites!

发表您的文章评论

您的姓名 (昵称)
标题:
评分: 很差一般较好很好
评论:
验证码:
请输入验证码