Configuration générale de PHP
|Lorsque vous installez un nouveau serveur avec Apache et PHP, vous n’avez pas forcément les fichiers de configuration configurés comme il le faudrait. Cet article n’a pas pour prétention de vous donner la solution à tout, mais vous pouvez sélectionner dans les configurations ci-dessous celles qui vous semblent importantes.
Vous trouverez ci-dessous une liste des fonctionnalités et la valeur conseillée concernant la configuration générale de PHP.
safe_mode
Supprimée dans PHP6, cette valeur active le mode sécurité de PHP. Cela dit, elle engendre plus de problème qu’elle n’en résout.
php.ini
safe_mode = Off
register_global
Supprimée dans PHP6. Activée, cette option fusionne les super-globales Environment, GET, POST, Cookie, Server. Permet donc facilement d’attaquer un site en passant un formulaire par GET et non COOKIE.
htaccess
php_flag register_globals off
php.ini
register_globals = Off
Magic_quote_gpc, magic_quote_runtime, magic_quote_sybase
Supprimée dans PHP6, ces valeurs étaient déstinée à protèger contre les injections SQL. Premièrement, elle ne protégaient que de certaines injection SQL. Deuxièmement, la protection s’effectuait même si vous ne souhaitiez pas utiliser les variables dans des requêtes SQL.
Utilisez plutôt mysql_real_escape_string() pour protèger vos requêtes.
php.ini
magic_quote_gpc = Off magic_quote_runtime = Off magic_quote_sybase = Off
Allow_url_fopen
Activez cette fonctionnalité uniquement lorsqu’un script a besoin d’accéder à un fichier distant (fopen, include, etc.)
php.ini
allow_url_fopen = Off
Allow_url_include
Activez cette fonctionnalité uniquement lorsqu’un script a besoin d’inclure un fichier distant.
php.ini
allow_url_include = On
Register_long_arrays
Permet d’utiliser $HTTP_POST_VARS et $HTTP_GET_VARS à la place de $_POST et $_GET. Utile pour assurer la compatibilité avec les vieux sites. Sinon, vous pouvez désactiver cette fonctionnalité.
php.ini
register_long_arrays = Off
Expose_php
Cette fonctionnalité envoie la version de php de PHP dans les entêtes d’une page, ce qui donne pas mal d’information à un pirate potentiel sur les failles qui existe sur la version que vous utilisez. exemple : X-Powered-By: PHP/5.2.8
php.ini
expose_php = Off
Disable_functions, disable_classes
Ces deux fonctions permettent de désacitver certaines fonctions ou classes qui ne sont pas utilisées et qui pourraient poser des problèmes de sécurité. Par exemple, la fonctions system n’est pas très souvent utilisée, vous pouvez sûrement la désactiver.
Les différentes fonctions que vous voulez désactiver doivent être séparées par des virgules.
php.ini
disable_functions = system,shell_exec
Retrouvez ci-dessous un liste des fonctions que vous n’utilisez peut-être pas et qui pourraient être désactivées :
Assert Curl_exec Curl_init Dl Eval Exec Extract Getenv Ignore_user_abort Imap_open Import_request_variables Ini_set Ini_get Mail Mysql_connect Mysql_pconnect Ora_open Parse_str Passthru Pg_connect Php_info Php_logo_guid Popen Proc_open Putenv Register_shutdown_function Register_tick_function Set_include_path Set_magic_quotes_runtime Set_time_limit Shell_exec Sqlite_open System Sys_get_temp_dir
Assert.active
Cette fonctionnalité permet d’autoriser l’utilisation de la fonction assert. Le problème de cette autorisation, c’est qu’elle permet d’effectué n’importe quel code PHP passé par une chaîne de caractères. Et quand on ne fait pas assez attention, un pirate peut s’en servir pour exécuter le code qui lui plaira pour prendre le contrôle total sans aucune difficulté.
php.ini
assert.active = Off






