Articles récents

  • Les fonctions anonymes

    Une fonction anonyme c'est... une fonction qui n'a pas de nom !!!

    Même si cette définition est vraie, elle n'aide pas à la compréhension. Alors, recommençons : une fonction anonyme est une fonction dont le code est écrit directement dans l'appel d'une autre fonction, alors que le paramètre attendu est une fonction de rappel.

    (suite…)
  • PHP : require, require_once, include, include_once

    PHP offre différents moyens d'inclure des fichiers dans un script permettant de générer une page Web : require, require_once, include, include_once. Ceci permet notamment d'éviter de recopier dans chaque page le code qui génère les différentes parties communes comme l'entête et le pied de page. On pourra également inclure des fichiers contenant du code qui n'est pas destiné à générer du code HTML, comme le branchement à la base de données ou une bibliothèque de fonctions PHP.

    Cet article vous présente les différences entre ces quatre instructions.

    (suite…)
  • PHP : Sécuriser les fichiers .inc

    Un fichier .inc contient le même genre de code qu'un fichier .php. Cependant, par convention, on utilise l'extension .inc pour indiquer qu'il ne s'agit pas d'une page Web mais plutôt d'un fichier non autonome, qui sera INClus dans un autre. On pourrait par exemple avoir un fichier .inc qui contient l'information à placer au début de chaque page Web du site, un autre fichier .inc qui contient les information à placer à la fin de chacune des pages, etc.

    Normalement, un fichier .inc devrait par défaut jouir des mêmes protections qu'un fichier .php. Les configurations du serveur peuvent cependant offrir des protections différentes.

    (suite…)
  • 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…)
  • Valider un formulaire côté client

    La validation d'un formulaire Web côté client est essentielle. C'est elle qui permet d'informer l'usager le plus rapidement lorsqu'il entre des informations invalides.

    En fait, les éléments visuels devraient déjà avoir averti l'usager de certaines règles à suivre : astérisque (*) devant les informations obligatoires, texte indiquant le format attendu, taille des zones de texte pour indiquer la taille de ce qui est attendu, etc. Mais ces éléments visuels ne sont qu'indicatifs. Ils n'effectuent pas de validation.

    La validation côté client peut être effectuée à l'aide d'attributs HTML ou à l'aide de JavaScript, avec ou sans jQuery.

    (suite…)