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>
