• Aucun résultat trouvé

Vérifier son code

Dans le document MAGENTO ET DRUPAL (Page 47-50)

Après avoir contrôlé le serveur au niveau des accès des ports et donc de la sécurité, vous devez aussi contrô-ler votre code. La sécurité de votre application est très importante, car elle peut aussi être la cause d’infections de votre serveur.

Listing 3. Fonction scan

<?php

function scan _ port($adresse,$port)

{ $cnx = @fsockopen($adresse, $port, $errno,

Listing 4. Sélection des ports

<?php

Listing 5. Boucle de test

<?php

7/2010 48

Serveur

Pour s’assurer d’un bon fonctionnement de votre serveur, vous devez réaliser une programmation sécuri-sée. Pour cela, de nombreuses fonctions existent, mais la majorité doivent se limiter au serveur de développe-ment et non à la production.

Attention cependant : cette partie ne va traiter que les points de sécurité propres à un projet web, or lors-que vous réalisez du code, vous pouvez être amené à effectuer des relations extérieures comme l’échange de données ou l’exécution de programmes annexes.

Et c’est ce point qu’il ne faut pas négliger envers votre serveur.

Les exécutions

Les fonctions d’exécution disponibles en PHP 5 per-mettent d’exécuter des commandes sur le systeme lui-même. Les fonctions disponibles vont vous permet-tre d’exécuter un programme et d’obtenir un résultat, comme les fonctions System(), passthru(), exec(), shell_exec().

Il est possible d’approfondir ces éxécutions de pro-grammes avec un degré de contrôle plus important.

Vous pouvez trouver les fonctions comme proc_open(), proc_close()... mais avec la possibilité de modifier les processus.

Contrôle du processus

Le contrôle du processus de PHP implémente un systè-me de création, de gestion des processus comsystè-me sous Unix. Le contrôle des processus s’utilise comme un mé-canisme de rappel du gestionnaire de signaux.

Les fonctions disponibles concernant les fonctions 'pcntl_()' sont nombreuses, comme pour l’ouverture, la duplication ou la fermeture. Mais vous pouvez en plus autoriser des interactions avec des processus à travers PTY ou les standards IEEE 1003.1 (POSIX.1).

L’extension sémaphore

L’extension sémaphore propose une interface pour les fonctions de type System V IPC. Les fonctions inté-grées vont vous permettre d’utiliser de la mémoire par-tagée et un système de communication inter-proces-sus (le IPC). Les fonctions proposées sont les fonctions 'shm()', 'msg_send()', 'ftok()'...

Les fonctions communes

Les fonctions communes sont des fonctions standards à PHP, et donc très utilisées. Vous pouvez rencontrer des fonctions telles que require(), include(), fi-le(), fopen(), preg_replace, $_GET / $_POST /

$PHPSELF...

Si vous n’utilisez pas correctement ces fonctions en plaçant des filtres aux variables pour la sécurité, elles peuvent aussi provoquer des dommages pour votre projet, cela à moyen/long terme en permettant d’infec-ter votre serveur.

Conclusion

Le serveur dans une entreprise est un axe très impor-tant. Il est même considéré comme le cœur de l’entre-prise. Par ailleurs, il permet d’effectuer la relation entre les visiteurs et les différents services internes.

C’est pourquoi il est important de bien le paramé-trer, de contrôler les ports à ouvrir et à bloquer, mais aussi de contrôler certaines fonctions qui pourraient in-directement vous poser des problèmes à cause d’une programmation non sécurisée.

Figure 3. Les ports ouverts et fermés Figure 2. Liste des ports ouvert Figure 2. Liste des ports ouvert

Le miroir

La sécurité est très importante, mais vouloir trop protéger peut bloquer certaines fonctions essentielles en PHP. Si vous bloquez le port 3306, vous ne pourrez pas utiliser la base de données MySQL sauf si vous avez décidé d'utiliser un port différent. Pour effectuer ces tests, vous devez posséder un autre serveur pour vous permettre d'effectuer des tests à distances. Ce deuxième serveur peut être votre ordinateur avec un environnement AMP déjà installé. L'opération présentée propose 2 avantages :

La possibilité de tester le réseau à tout moment même en cas de panne du serveur de production.

Celle de contrôler les ports dont vous aurez besoin lors des évolutions de votre projet.

La réalisation de ces tests peut s'effectuer avec un petit script en PHP. Le script devra proposer :

Le test des ports.

La liste des numéros à tester.

Le résultat obtenu.

Les ports

Pour faciliter les tests des ports, vous pouvez définir une fonction qui sera interrogée à chaque fois qu'un port sera sollicité. La fonction nous retournera une valeur positive si celui-ci est ouvert (Listing 3 ) . Sinon il n'y aura aucun message de retour.

Listing 3. Fonction scan

<?php

function scan_port($adresse,$port) {

$cnx = @fsockopen($adresse, $port, $errno, $errstr, 0.1);

if ($cnx) {

fclose($cnx);

Figure 3. Les ports ouverts et fermés

Vérifier son code

Après avoir contrôlé le serveur au niveau des accès des ports et donc de la sécurité, vous devez aussi contrôler votre code. La sécurité de votre application est très importante, car elle peut aussi être la cause d'infections de votre serveur. Pour s'assurer d'un bon fonctionnement de votre serveur, vous devez réaliser une programmation sécurisée. Pour cela, de nombreuses fonctions existent, mais la majorité doivent se limiter au serveur de développement et non à la production.

Attention cependant : cette partie ne va traiter que les points de sécurité propres à un projet web, or lorsque vous réalisez du code, vous pouvez être amené à effectuer des relations extérieures comme l'échange de données ou l'exécution de programmes annexes. Et c'est ce point qu'il ne faut pas négliger envers votre serveur.

Les exécutions

Les fonctions d'exécution disponibles en PHP 5 permettent d'exécuter des commandes sur le systeme lui-même. Les fonctions disponibles vont vous permettre d'exécuter un programme et

CHRISTOPHE VILLENEUVE

Consultant, auteur du livre PHP & MySQL-MySQLi-PDO, Constru-isez Votre Application, livre français aux Éditions ENI, spécialiste des nombreux secteurs PHP (CMS, CRM...) pour Alter Way solutions et contributeur pour de nombreux sites touchant PHP dont Nexen, PHP Team, PHPTV...

Contacter l’auteur : http://www.hello-design.fr

Pour les débutants

Serveur

Dans le document MAGENTO ET DRUPAL (Page 47-50)

Documents relatifs