Installation de PhpSecInfo
Par Seza le mercredi 1 novembre 2006, 16:09 - Programmation - Lien permanent
Comment savoir si son Php est sécurisé ? PhpSecInfo vous indique les points cruciaux avant de vous plonger dans la lecture du php.ini.
Tout comme bon développeur php et développeur en général la sécurité est un point important qu'il ne faux pas négliger. Internet étant en première ligne de mire des tentative de piratage, une question revient relativement très souvent donc : Comment être certain d'avoir une application php sécurisée ?
La base de la sécurité commence par php lui même. Bien que beaucoup de développeur connaisse bien le fichier de configuration php.ini et le configure sans problème in n'empêche qu'il peuvent passé à côté de certaine erreur de configuration, le débutant aura tout aussi besoin qu'on lui indique quel sont les points important à vérifier, tout autant que pour l'administrateur serveur qui ne connais pas forcément php mais installe celui ci pour le besoin de ses utilisateurs.
Avant de se plonger dans la sécurité avancée PhpSecInfo peux déjà vous orienté sur les premier point à vérifier en procédant à un check de la configuration php et en vous affichant à la manière du phpinfo(); classique que tout le monde connait les points critiques de votre configuration.
Commençont donc par le début avec l'installation de PhpSecInfo.
1° Télécharger la librairie PhpSecInfo sur votre serveur à la racine de votre site web par exemple.
[root@machine www $] wget http://phpsec.org/projects/phpsecinfo/phpsecinfo.zip
2° Une fois l'archive ZIP récupérée, décompresser là :
[root@machine www $] unzip phpsecinfo.zip
L'archive s'est décompresser dans un dossier nommé phpsecinfo-datedelaversion. Chez moi phpsecinfo-20061030
.
3° Maintenant que notre librairie toute neuve est installer afin de simplifier sont accès et sont adressage sur le serveur, je place un lien symbolique phpsecinfo pointant sur le véritable dossier de la librairie. Ceci est très utile pour changer de version ultérieurement sans avoir a refaire l'adressage des script utilisant cette librairie.
[root@machine www $] ln -s phpsecinfo phpsecinfo-20061030
4° Maintenant il faut doner les bons droits à tous ces fichiers. Repéré l'utilisateur du site ici user
et son groupe (généralement apache) ici www-data
[root@machine www $] chown -R user:www-data phpsecinfo *
voilà vous êtes un génie, phpsecinfo devrait fonctionner sur votre site. Pour l'appeler rien de plus simple appeler directement depuis votre navigateur l'adresse http://www.monsite.org/phpsecinfo/index.php
. Et vous devriez voir le résultat.
C'est la manière la plus simple de l'appeler. vous pouvez aussi procédé dans un de vos scripts :
[php]
Néanmoins j'ai dis tout à l'heure devrait fonctionner
car chez moi par exemple j'ai eu un problème dans l'inclusion des fichiers en esayant d'appeler la première fois la librairie. En effet dans les fichiers de phpsecinfo rien n'à été prévue (du moins pas utiliser) pour retrouer le bon chemin de ses propres fichiers.
Dans tout les fichiers se trouvant dans le répertoire et les sous répertoire de phpsecinfo/PhpSecInfo/Test
on peut trouver ligne 12 ou 13 une inclusion de fichier. J'ai utliser une variable interne à phpsecinfo pour résoudre se problème de ne pas trop polluer le code source de la librairie.
Voici ce qu'il faut faire dans les fichier suivant :
- /phpsecinfo/PhpSecInfo/Test/Test_Cgi.php
- /phpsecinfo/PhpSecInfo/Test/Test_Core.php
- /phpsecinfo/PhpSecInfo/Test/Test_Curl.php
- /phpsecinfo/PhpSecInfo/Test/Test_Session.php
- /phpsecinfo/PhpSecInfo/Test/Test_Cgi.php
- /phpsecinfo/PhpSecInfo/Test/Test_Cgi.php
- /phpsecinfo/PhpSecInfo/Test/CGI/force_redirect.php
- /phpsecinfo/PhpSecInfo/Test/Core/allow_url_fopen.php
- /phpsecinfo/PhpSecInfo/Test/Core/display_errors.php
- /phpsecinfo/PhpSecInfo/Test/Core/expose_php.php
- /phpsecinfo/PhpSecInfo/Test/Core/file_uploads.php
- /phpsecinfo/PhpSecInfo/Test/Core/gid.php
- /phpsecinfo/PhpSecInfo/Test/Core/magic_quotes_gpc.php
- /phpsecinfo/PhpSecInfo/Test/Core/memory_limit.php
- /phpsecinfo/PhpSecInfo/Test/Core/open_basedir.php
- /phpsecinfo/PhpSecInfo/Test/Core/post_max_size.php
- /phpsecinfo/PhpSecInfo/Test/Core/register_globals.php
- /phpsecinfo/PhpSecInfo/Test/Core/uid.php
- /phpsecinfo/PhpSecInfo/Test/Core/upload_max_filesize.php
- /phpsecinfo/PhpSecInfo/Test/Core/upload_tmp_dir.php
- /phpsecinfo/PhpSecInfo/Test/Curl/file_support.php
- /phpsecinfo/PhpSecInfo/Test/Session/use_trans_sid.php
remplacer la ligne
[php] require_once('PhpSecInfo/Test/un_fichier_exemple.php');
par
[php] require_once($test_root->path.'/un_fichier_exemple.php');
Et une petite variante dans le fichier :
- /phpsecinfo/PhpSecInfo/Test/Test.php
remplacer la ligne
[php] require_once('PhpSecInfo/PhpSecInfo.php');
par
[php] require_once($test_root->path.'/../PhpSecInfo.php');
Voilà ceci m'a fait perdre 10 minutes de temps mais à résolu le problème. J'ai pu vérifier ma configuration php et voir un petit trou de sécurité :)
Il est à noté toutefois que si php peut s'avéré vulnérable, il est le plus souvent vulnérable par que le codeur laisse dans son code source une porte d'entrée vers une faille du système au pirate. Sécurisé php est un bon point mais pas une finalité en soit. Ce n'est pas parce que votre configuration php est propre que vous ne serez pas attaquer. Vous devez sécurisé aussi votre code source vérifié et testé en pirate votre propre site à la recherche de faille dans les uploads de fichier, vos sessions, vos inclusions de fichiers, etc...
De nombreux outils qui s'intègrent dans les navigateur existe pour observer les cookies, les données passé en post etc... vous devez les utilisers pour vérifier que rien de votre site n'est transparent et peut laisser des informations au pirate car lui aussi utilise ces outils.
Par expérience on a trop vite fait de détourner une url, de fausser une session ou de modifier un cookie.
Récemment j'ai encore vu un site posé un cookie du type administrateur = 0. que se passerait-il si je mettais 1 à la place... Bien sur en honnête gens je préviens le webmaster concerner. Faîtes-en d'autant avec votre site, regarder le d'un oeil critique et dormer conscience tranquille.
@ bientôt.
Derniers commentaires