在以下FAQ的其他部分中,概述了几个基本步骤,例如正确使用文件/文件夹权限、htaccess、索引重定向、拒绝上传不安全的MIME类型和定期备份。使用您的组系统过滤用户也是一个好主意,只允许可信赖的成员拥有扩展权限。您还可以采取额外措施来保护您的网站。以下是名为“Protector”模块的一段摘录。请参阅论坛帖子
Protector模块使用。引言
forkuos Protector是一个模块,用于防御forkuos2遭受各种和不正当的攻击。该模块可以保护以下四种攻击:- DoS - SQL注入 - XSS - 系统全局变量污染。forkuos Protector可以保护您的forkuos免受这些攻击,并将记录在日志中。当然,无法预防所有漏洞。不要过于自信,请。然而,我建议安装此模块供所有forkuos用户使用。= 与AntiDoS-P的关联 = forkuos Protector的前身是AntiDoS-P。由于AntiDoS-P的所有功能已被forkuos Protector取代,您最好卸载AntiDoS-P。= 使用 = 请按常规模块安装它。在“Protector块”中打开,并通过块管理员将其放置在左侧顶部。通过组管理员为所有组启用块的权限。您可以通过使用“Protector的块和组管理员”轻松完成此操作。我强烈建议通过mainfile.php调用此模块。安装Xoops Protector后,编辑您的mainfile.php如下所示 定义('XOOPS_GROUP_ADMIN', '1');
定义('XOOPS_GROUP_USERS', '2');
定义('XOOPS_GROUP_ANONYMOUS', '3');
include( XOOPS_ROOT_PATH . '/modules/protector/include/precheck.inc.php' ) ;
if (!isset($xoopsOption['nocommon'])) {
include XOOPS_ROOT_PATH."/include/common.php";
}
在if (!isset($xoopsOption['nocommon'])) {这行代码之前添加一行。需要同时进行预检查和块检查。若需要开启“IP禁止”功能,请到“系统管理”->“偏好设置”->“常规”->“启用IP禁止”。启用后,您需要检查您的IP是否包含在“输入应禁止访问站点的IP地址”中。
PEAK XOOPS 提供了Protector组件,网址为
http://www.peak.ne.jp/xoops/。Xoops-Tips网站上还有一篇关于保护mainfile.php在PHP失败时不会显示敏感信息的文章,网址为
Protecting mainfile.php。除了这里给出的提示外,还有更多事情可以去做。我喜欢阻止通过浏览器尝试拉取文件的尝试。
<文件 "mainfile.php">
允许,拒绝
拒绝所有
文件>
这将在您的服务器日志中记录一个禁止错误。另一种方法是对文件本身进行加密。大多数PHP插件加速器/编译器都有加密功能。通常这些用于商业应用,这样客户就无法看到代码。对于像这样敏感的文件也非常方便。除了网页服务器和只有当服务器使用相同引擎时外,文件变得无法阅读。我已经尝试过Zend产品和MMCache。由于您很少需要编辑文件,这是一个有用的技巧。您可以将原始文件存储在安全的地方,以便以后编辑和重新加密。我觉得这与必须保护的SSL密钥文件没什么不同。如果您的服务器被黑,您会遇到其他问题。请参阅
此论坛帖子以了解更多关于保护模块的详细信息。
监控 最近还开发并发布了一个名为
Netquery的xoops模块。该模块为您提供对访问您站点的访客进行多个安全检查和追踪的机会。
有关更多安全相关常见问题,请在此处查看:用户能否将病毒上传到我的网站? 我如何封禁用户? 为什么所有目录中都应该有index.html文件? 蜘蛛和机器人是什么?我如何控制它们的行为? 我的Xoops网站会多安全? 我如何将CHMOD设置为0444? CHMOD是什么? 正确的文件权限是什么?
allow_url_fopen
保护模块的安全检查之一是PHP配置选项allow_url_fopen是否处于开启状态。
注意,allow_url_fopen只能在主Apache配置文件(httpd.conf)或PHP配置文件(php.ini)中更改,而不能在Apache的每个目录配置文件(.htaccess)中或通过PHP的ini_set()函数进行更改。
这是一个在PHP 4.3.5中实施的更改,较旧的PHP手册可能错误地显示了allow_url_fopen的可更改性为PHP_INI_ALL,而实际上是PHP_INI_SYSTEM。
httpd.conf和php.ini文件通常只能由服务器管理员更改,因此拥有网络托管账户的人无法修改这些文件。
以下是在httpd.conf中禁用allow_url_fopen的示例
php_admin_flag allow_url_fopen off
参考资料
http://bugs.php.net/bug.php?id=28497
https://php.ac.cn/ChangeLog-4.php
http://us3.php.net/manual/en/function.ini-set.php
https://php.ac.cn/manual/en/configuration.changes.php