Catégorie : PHP

  • Comment empêcher PHP d’afficher les messages d’erreurs en mode production

    Pendant le débogage d'un programme, plutôt que d'utiliser un débogueur, nous choisissons parfois d'afficher une variable à l'écran pour vérifier sa valeur. Mais pour nous assurer que cet affichage ne pourra pas avoir lieu lorsque le site sera en production (en cas où on oublierait d'effacer l'instruction qui l'affiche), nous utilisons notre fonction maison echo_debug().

    Il serait intéressant d'appliquer la même logique aux messages d'erreur générés par PHP. En effet, lorsqu'un programme PHP rencontre du code pour lequel il a un message à envoyer, comme par exemple une erreur fatale, un avertissement ou l'utilisation d'une fonction obsolète, le message est automatiquement affiché à l'écran. Ce comportement est très pratique pendant la phase de développement. Cependant, une fois le site en production, ces messages peuvent ouvrir des trous de sécurité puisque le nom et le chemin du fichier concerné sont affichés.

    (suite…)
  • PHP : Comment choisir entre $mysqli‑>prepare() et $mysqli‑>query() ?

    Plusieurs techniques permettent d'effectuer des requêtes MySQL avec PHP. Prenons l'extension MySQLi. Elle permet notamment d'effectuer une requête à l'aide de $mysqli‑>query() ou, pour plus de sécurité, à l'aide de $mysqli‑>prepare(). Mais si $mysqli‑>prepare() est plus sécuritaire, doit-on pour autant éviter d'utiliser $mysqli‑>query() ?

    (suite…)
  • Quelques types d’attaques

    En tant que développeur Web, vous devez être au courant des attaques qui pourraient être menées contre les sites que vous développez. Ceci vous permettra de mieux protéger votre code et vos données.

    Cet article vous présente trois types d'attaques : les injections SQL, les attaques XSS et les attaques CSRF. Soyez avisé qu'il existe de nombreux autres types d'attaques. Ceci ne constitue qu'un minimum à connaître. De plus, les descriptions et exemples présentés ici ne constituent qu'une partie des techniques mises en place par les utilisateurs malveillants.

    (suite…)
  • Valider un formulaire côté serveur avec PHP

    La validation d'un formulaire Web est une tâche complexe. Il faut en effet s'assurer que les données entrées par l'usager correspondent au format attendu, qu'elles soient valables et qu'elles ne compromettent pas la sécurité du site Web.

    Normalement, une fois que l'usager a cliqué sur le bouton de soumission, les données entrées devraient être valides puisque la validation a déjà été effectuée côté client. Cependant, comme cette validation peut être désactivée, il est absolument nécessaire de refaire la validation côté serveur.

    Voici les étapes permettant de bien valider les données d'un formulaire avec PHP.

    (suite…)
  • AJAX pour gérer des listes déroulantes imbriquées

    Certains sites ont besoin de mettre en place une liste déroulante dont les options dépendent de la valeur sélectionnée dans une autre liste déroulante.

    Par exemple, on pourrait avoir une liste déroulante proposant les départements d'une entreprise et une autre qui présente les personnes travaillant dans le département sélectionné. Autre exemple : une liste déroulante de pays et, selon le pays sélectionné, une liste déroulante de provinces (ou d'états, ou de communes, selon le terme convenant au pays).

    Pour réaliser des listes déroulantes imbriquées, AJAX sera votre allié !

    (suite…)
  • Comment bien tester une requête AJAX avec PHP

    Vous avez réussi à effectuer un appel serveur avec AJAX, c'est bien. Mais encore faut-il vous assurer que votre programme réagira correctement si l'appel ne fonctionne pas.

    Même si vous utilisez un algorithme fourni par un as de la programmation, ne vous y fiez jamais. Vous devez toujours prendre soin de tout tester. Qui sait, vous pourriez peut-être avoir l'occasion d'épater l'auteur qui vous a fourni sa structure de code en apportant des amélioration à son précieux code !

    Comme le nombre de causes d'erreur possibles est élevé, cet article vous présent quelques pistes pour vous aider.

    (suite…)
  • Comment déboguer une requête AJAX

    Lorsqu'on fait une requête AJAX, il faut savoir déboguer autant du côté client que du côté serveur car les deux entrent en jeu.

    Les raisons pouvant causer le problème sont nombreuses. Le problème peut provenir de l'exécution de la fonction JavaScript, de l'appel AJAX en tant que tel, du code serveur, du traitement effectué lorsque l'appel AJAX a été réussi, ...

    Et tous nos tests ne seront valides que si on est assuré que la version testée correspond bel et bien à la dernière version écrite. Le piège de la mémoire cache vous guette !

    (suite…)
  • La sécurité avec AJAX

    Puisque AJAX est basé sur des technologies existantes qui comportent des vulnérabilités, les appels AJAX sont sujets à ces mêmes vulnérabilités : attaques XSS (Cross Site Scripting), attaques CSRF (Cross Site Request Forgery), injections SQL, etc.

    Cet article vous présente les protections de base que vous devriez mettre en place dans votre code utilisant AJAX.

    (suite…)