Security
From ClaroDevel
| Table of contents |
Security
Since Claroline 1.7, the platform can works on secure php configuration. Here is the PHP configuration that we encourage you to have on your web server.
Register Globals
Claroline works with register_globals disabled
In php.ini:
register_globals off
Note : If you cannot change the php configuration, try with .htaccess file :
php_flag register_globals off
Allow url open
In php.ini :
allow_url_fopen off
http://www.php.net/manual/en/ini.php
http://www.php.net/manual/en/ref.filesystem.php#ini.allow-url-fopen
Error Reporting
On production server, we suggest you to disable the display of error messages.
In php.ini :
log_errors On display_errors Off error_log /var/log/php/errors
Note : the folder /var/log/php must be writable by webserver user (www-data, httpd, ...)
Disable functions
You can disable these functions
In php.ini :
disable_functions = proc_open , popen, disk_free_space, diskfreespace, set_time_limit, leak, tmpfile, exec, system, shell_exec, passthru
Open_basedir
Sample of use in apache configuration :
<VirtualHost 127.0.0.1> DocumentRoot /home/www/somewhere.com/html ServerName somewhere.com ServerAlias www.somewhere.com php_admin_value open_basedir /home/www/somewhere.com/ </VirtualHost>
Safe mode
http://www.php.net/manual/en/features.safe-mode.php#ini.safe-mode
Functions restricted/disabled by safe mode
http://www.php.net/manual/en/features.safe-mode.functions.php
Mysql
http://greg.chiaraquartet.net/archives/124-Protecting-a-MySQL-userpassword-in-a-PHP-script.html
Sécurité (french)
Depuis la version 1.7 de claroline, il est possible de faire fonctionner la plateforme sur des serveurs où la configuration PHP est sécurisée et stricte.
Nous allons vous décrire la configuration PHP que nous vous encourageons à avoir sur votre serveur.
Register Globals
Claroline depuis sa version 1.7 fonctionne avec register_globals désactivé.
Dans le php.ini:
register_globals off
Note : Chez un hébergeur mutualisé qui ne permet pas de modifier la configuration php. Vous pouvez utiliser un fichier .htaccess qui contient cette ligne : php_flag register_globals off
Allow url open
Nous vous conseillons de désactiver cette option. Claroline n'en a pas besoin.
Dans le php.ini :
allow_url_fopen off
http://www.php.net/manual/en/ini.php
http://www.php.net/manual/en/ref.filesystem.php#ini.allow-url-fopen
http://www.php.net/manual/fr/ini.php
http://www.php.net/manual/fr/ref.filesystem.php#ini.allow-url-fopen
Error Reporting
Sur un serveur en production, nous vous conseillons de désactiver l'affichage des erreurs.
Dans le php.ini :
log_errors On display_errors Off error_log /var/log/php/errors
Note : Le dossier /var/log/php doit être accessible en écriture pour l'utilisateur du serveur web (www-data, httpd, ...)
Disable functions
Vous pouvez désactiver ces fonctions :
Dans le php.ini :
disable_functions = proc_open , popen, disk_free_space, diskfreespace, set_time_limit, leak, tmpfile, exec, system, shell_exec, passthru
Open_basedir
Claroline fonctionne avec open_basedir
Exemple d'utilisation :
<VirtualHost 127.0.0.1> DocumentRoot /home/www/somewhere.com/html ServerName somewhere.com ServerAlias www.somewhere.com php_admin_value open_basedir /home/www/somewhere.com/ </VirtualHost>
Safe mode
http://be2.php.net/manual/fr/features.safe-mode.php#ini.safe-mode
Functions restricted/disabled by safe mode
http://www.php.net/manual/en/features.safe-mode.functions.php
http://www.php.net/manual/fr/features.safe-mode.functions.php
