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
Tagués avec : , , , ,
Publié dans PHP

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*