Sécuriser PHP

Un article de Claroline Documentation.

Il est possible de faire fonctionner la plate-forme 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.

Sommaire

Register Globals

Claroline fonctionne parfaitement 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/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 les restrictions open_basedir. Cette configuration interdit php d'accéder aux scripts qui se trouvent dans des dossiers autres que ceux mentionné. Pour utiliser l'open_basedir, vous devez autoriser l'accès aux dossier de claroline et au dossier utilisé pour l'upload de fichiers (en général /tmp).

Exemple d'utilisation avec un vhost apache :

<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/:/tmp
</VirtualHost>
Outils personels