如何定义(' _JEXEC')或死亡('限制访问')如何工作?

时间:2014-04-04 02:18:14

标签: security joomla

此行位于模板和模块的顶部:

defined('_JEXEC') or die('Restricted access');

来自Joomla! Documentation

  

此语句检查是否从Joomla中调用该文件!会话并通过使黑客/黑客更难以破坏您的网站来保护您的网站。

_JEXEC在Joomla根目录的index.php文件中定义!网站[source]是什么阻止某人在自己的网站中定义_JEXEC并包含我的模块,因为defined('_JEXEC')会返回true呢?

2 个答案:

答案 0 :(得分:3)

我想如果黑客控制了你的网站_JEXEC - 测试将没有任何功能。但只要有人试图打破你的网站,代码就会确保他们不能直接在文件层次中执行文件,但总是必须通过/index.php输入。

  阻止某人在自己的网站中定义_JEXEC的原因是什么   包括我的模块

这是不可能的。如果你试图在另一个站点上包含一个php文件,那么所有返回给你的是生成的输出,而不是php-code本身,对吧?

尊重Jonas

答案 1 :(得分:0)

主要思想是让Joomla以正确的顺序执行。如果没有可能向攻击者提供信息的先前操作,您的代码可能会抛出错误。