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