A-A+
Mediawiki的安全问题设置
- Mediawiki技术文档 | Mediawiki建站 | 服务器安全
MediaWiki程序的安全性随着版本升级而得到提升,同时性能上也有明显增强。因此本文仅就1.4.0之后的版本进行说明。
mediawiki安全概述
- 强烈建议:将服务器上脚本程序目录以外的部分设置为禁止[[PHP">PHP</a>脚本运行(下文中提到的"php_admin_flag engine off/on|PHP]]脚本运行(下文中提到的"php_admin_flag engine off/on"参数),以防止恶意脚本的上传和运行。
- 将register_globals设为关闭状态,否则可能造成部分程序不安全。关闭的方法参见 http://php.net/register_globals" (英文)。
- LocalSettings.php中包含数据库用户的密码,请不要在网站空间上随意建立备份文件,以免被作为文本文件访问而造成泄密。
- 禁止在允许上传的目录中执行PHP,因为有人可能作为服务器用户来执行任意的代码。同时建议将HTML文件强制解释为文本文件,以避免窃取cookie攻击。这是apache设置的代码片断:
<Location "/wiki/images">
php_admin_flag engine off AddType text/plain .html .htm .shtml
</Location>
这也可以通过设置上传目录中的.htaccess文件完成(注意将该文件进行写保护):
php_value engine off AddType text/plain .html .htm .shtml
关于服务器Apache httpd的说明
你可能希望将HTML文件强制解释为文本文件,以避免窃取cookie攻击。这是apache设置的代码部分:
<Directory "/$path/MediaWiki/web/images"> # Ignore .htaccess files AllowOverride None # Serve HTML as plaintext AddType text/plain .html .htm .shtml # Don't run arbitrary PHP code. php_admin_flag engine off # If you've other scripting languages, disable them too. </Directory>
关于PHP解释器的说明
register_globals
在Mediawiki版本1.2之后,不再需要php.ini中的register_globals被打开。
强烈建议关闭register_globals,除非另外的应用需要。
php.ini可能存放在:
- /etc/php.ini (Red Hat Linux)
- /etc/php4/apache/php.ini (Debian woody)
- /usr/local/php/lib/php.ini (Mac OS X using Marc Liyanage's PHP package)
- /var/www/conf/php.ini (OpenBSD)
- /usr/local/etc/php.ini (FreeBSD)
- /etc/apache2/conf/php.ini (Gentoo Linux)
- c:windowsphp.ini (Windows)
在linux下面可发命令查找
find / -name pgp.ini
请将php.ini中的“register_globals = On”改为“register_globals = Off”。
作为替代手段,你可以在apache directive中加入下面一行,以基于单一目录的方式禁用register_globals:
php_flag register_globals off
之后重启Apache以使更改产生作用。
上传目录的安全设置
- 禁止在允许上传的目录中执行PHP,因为有人可能作为服务器用户来执行任意的代码。实际上,其他CGI程序脚本也应当被禁止。同时建议将HTML文件强制解释为文本文件,以避免窃取cookie攻击。这是apache设置的代码部分例子:
<Location "/wiki/images">
php_admin_flag engine off Options -ExecCGI AddType text/plain .html .htm .shtml .php
</Location>
关于MySQL数据库的说明 重要!
- LocalSettings.php中包含数据库用户的密码,请不要在网站空间上随意建立备份文件,以免被作为文本文件访问而造成泄密。