来源:
XOOPS_TipsXOOPS_TRUST_PATH 由 GIJOE 提出(基于 minahito 的想法,并由 GIJOE 予以认可)。XOOPS_TRUST_PATH 的想法和/或概念是,通过将所有模块的 PHP 文件从 web 根目录或 DOCUMENT_ROOT 中移除,以确保 Xoops 模块的安全性。
这样做可以使模块不容易受到潜在的攻击者的篡改,尤其是如果模块在文档根目录下包含私有文件的话。
(将 MySQL 用户名和密码从 mainfile.php 或文档根目录中移出也是一个类似的想法。)
使用 XOOPS_TRUST_PATH 的第二个好处是,如果模块开发者采用了这个想法,模块的复制过程可以简化并变得可管理。
那些尝试过复制 Xoops 模块的人可以证实这是多么困难的一件事。
GIJOE 提出了几个可复制的模块,尽管 V2/D2(GIJOE 给的名称)使复制变得更容易,但它们仍然不易于维护。最重要的是,将模块命名为 “/modules/news/” 和 “/modules/news1/” 并不是一个专业的命名方法。
随着 XOOPS_TRUST_PATH 和可复制的模块(或可复制的 V3/D3)的引入,你可以自由地为模块命名。你可以有许多实例相同的模块,每个都有自己的模板文件和 MySQL 表文件,并且都可以安全地从位于网络根目录之外的单一模块中运行。模板文件将与模块名称一起安装,这样你可以根据需要对其进行定制,以便区分复制的模块(见注意事项)。
当然,模块必须利用 XOOPS_TRUST_PATH 开发和编写。迄今为止,没有多少模块采用了这个想法,只有少数日本开发者基于 D3 开发模块。希望我们将看到越来越多的模块开发者采用 D3。
Suin 开发的公告(一个功能更强大、更灵活的新闻模块)是使用 XOOPS_TRUST_PATH 的模块之一
(
http://suin.jp/modules/mydownloads/singlefile-cid-10-lid-12.html)
注意:即使在 Suin 未指定对此平台的支持的情况下,公告也能在原始的 Xoops 中正常运行。
要使用XOOPS_TRUST_PATH,您必须编辑mainfile.php,添加一个定义XOOPS_TRUST_PATH位置的常量。
该位置应位于您的文档根目录之外,以利用安全功能。
如果你的Xoops网站根目录是
/home/yourname/public_html
那么您应该在/home/yourname下创建一个目录,与public_html平行(NOT UNDER it,否则它将抵消将文件移出网站根目录的全部安全目的)。
我们将创建一个名为“xoops-secure”的目录,因此我们在mainfile.php中添加一个条目
define('XOOPS_TRUST_PATH','/home/yourhome/xoops-secure');
然后在xoops-secure下创建一个名为“modules”的目录。别忘了为这两个目录设置chmod 705以增加额外的安全性。
解压缩公告模块。公告模块有两个目录
html/modules/bulletin – 将内容上传到您的网站根目录,就像上传常规模块一样
xoops_trust_path/modules/bulletin – 将内容上传到xoops-secure/modules/下
按常规进行模块安装,您将在Xoops中安装一个名为bulletin的模块。
现在,我们将安装相同公告模块的第二个实例。
您可以将html/modules/bulletin下的bulletin重命名为您想要的名字 - 让我们将其命名为“xnews”。将内容上传到网站根目录下的modules目录。然后安装它,现在您已安装了两个相同的公告模块 - bulletion和xnews!
即使是您只打算使用公告模块一次,您也可以第一次更改公告模块的名称。如果您不希望使用模块的名称,您可以自由地将公告重命名为您心中所想的名字。
在XOOPS_TRUST_PATH下的公告模块名称不能更改。如果您想更改模块文件,您应该在XOOPS_TRUST_PATH/modules/bulletin下进行更改,因为Xoops根目录下的所有模块文件都是重定向文件。
为了区分两个公告模块实例,您可以自定义模板文件(GIJOE的tplsadmin模块是修改模板文件的好方法)。
使用公告的注意事项 公告提供了一个简单的方法将现有的新闻模块文章转换为公告文章。如果您有一个包含大量文章的现有网站,在转换之前应三思。
公告的URL与新闻URL不同。转换和使用公告将会完全破坏您的搜索引擎索引。如果您从搜索引擎中获得相当多的流量,您可能不应该进行转换。
如果您从头开始(start anew),公告模块应该被视为新闻模块的良好替代方案。
使用D3的注意事项模板文件是集中的 - 如果您更新模块,所有重复模块的模板文件都将被覆盖。
其他可以与XOOPS_TRUST_PATH一起玩的东西GIJOE的每个页面“最快的缓存”黑客。
无法更改mainfile
我尝试更改 mainfile.php 文件以添加信任路径,但总是遇到错误。它不允许我编辑它。
我确信我在做非常愚蠢的事情。