Récapitulatif de sécurité en conception Web

La sécurité sur un site Web est primordiale, vous devez savoir anticiper n'importe quelle attaque sur votre système. Quelques principes de bases sont donc à prendre en compte lors de la conception.

 

 

 

Sur le serveur vous devez :

 

  • LIMITER L'ACCÈS :

    En phase de développement, seul vous et l'administrateur devez avoir accès aux différentes fonctions.

    Pour cela vous pouver vous servir de fichiers .htaccess (http://www.webmaster-hub.com/publication/Le-fichier-htaccess.html), il ne suffit pas de cacher votre site sous un nom de dossier pour qu'il soit protégé. En effet il existe des robots qui scan les sites à la recherche de failles et qui ne se préoccupe pas de savoir si le nom du dossier 'racine' est complexe ou non.


  • GÉRER LES DROITS :

    En phase de production vous devez, si vous le pouvez, limiter au maximum les droits sur les fichiers et dossiers.(article de manuelphp).


  • DIRECTIVE ALLOW_URL_FOPEN :

    allow_url_fopen : il est conseillé d'avoir cette directive à off, si jamais ce n'est pas le cas sur votre serveur, demandez à votre fournisseur d'effectuer la modification (cette directive n'est pas modifiable par .htaccess).


  • DIRECTIVE REGISTER_GLOBALS :

    register_globals : pour des raisons de sécurité il faut mettre cette directive à off (article sivit)

    pour cela rien de plus simple il vous suffit de placer dans un .htaccess la ligne suivante :

    php_flag register_globals off


 

 

La protection de vos fonctions :

 

  • LA BASE DE DONNÉES :

    PHP est lié dans les sites dynamiques à un SGBD, ses sites sont ainsi centré autour de cette base de données, il convient de la protéger des attaques potentielles.

    Pour cela vous devez filtrer TOUTES LES DONNEES externe, comme interne, au serveur (ex $_SERVER).

    PHP met à disposition plusieurs solutions :

    Il vous suffit d'échapper les variables entrantes : un tuto phpfrance

    Ou bien si vous le désirez, utiliser PDO : fr.php.net

    Vous devez traiter les variables globales comme des variables externes, en effet il est tout à fait possible pour un hackeur de modifier le contenu des ses variables.

     

    Pensez aussi à contrôler la taille des chaines de caractères qui sont entrées dans la base. En effet si vous avez un VARCHAR (50) il ne suffit pas de faire un input avec maxsize à 50 pour que l'on parle de donnée sécurisée ! Il faut traiter cette variable en vérifiant qu'elle ne dépasse pas la taille maximale accepter par votre attribut SQL. Vous pouvez ainsi choisir de renvoyer un message d'erreur ou de tronquer la chaine.


  • Afficher une donnée :


    Avant d'afficher une donnée ou de construire un lien à partir de celle-ci données non directement controlées il vous faut convertir les caractères unicode en caractère HTML. Par exemple un espace deviendra '&nbsp'.

    Pour cela il existe plusieurs fonctions dont htmlentities et htmlspecialchars.


  • Se protéger contre les attaques XSS :

    Vous devez faire attention à ne pas utiliser les fonctions d'inclusions de fichiers (include_once par exemple) avec des fichiers dont le nom n'est pas contrôlé : Aide tuxplanet

    De même les champs de textes doivent être protégés contre les attaques XSS : Aide tuxplanet


 

 

Cet article n'est qu'une initiation à la sécurité, il ne représente en aucun cas une liste exhaustive des attaques possibles de nos jours. De plus j'ai sûrement oublié de noter d'autres principes de base.

 

A la prochaine ! N'hésitez pas à commenté si quelque chose vous chagrine dans cet article ou même si ça vous a vous plu  ;)

5 commentaires sur 'Récapitulatif de sécurité en conception Web'

  1. Génial !!
    J'ai aussi découvert le site PHP France sur lequel j'ai bcp appris  :-) notamment pour sécuriser les formulaires avec vérifications de données.
    D'ailleurs la version de Joomla 1.5 sécurise bcp les sites avec les register_globals off. Qu'en est-il de OSCommerce ? où je crois qu'il y avait une faille ?
  2. heu.. des failles il y en a plein  ;) enfin pas trop il faut espérer mais tous les jours 'on' en découvre de nouvelles ! Pour os Commerce je sais pas trop après si tu veux être au courant tu as des adresses utiles :

    http://www.nexen.net/

    http://www.zataz.com/alertes-securite/

    (par exemple)

    Tu peux aussi chercher si il existe des flux RSS en interne chez les développeurs de OsCommerce...
  3. Bah quand j'en serais arrivée là...
    Bravo mika
  4. lol
    Tu y sera plus vite que tu ne le crois  :)
    merci arti  ;)
  5. en plus c d'actualité ! (topic) bien vu

Ajouter un commentaire

Vous avez un compte sur Wilogo ?
Entrez le mot indiqué ci-contre :captcha