codeur:securite

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Prochaine révision
Révision précédente
codeur:securite [Mar. 21, 2007 10:33 PM UTC ] – créée developpeurcodeur:securite [Dec. 12, 2024 11:11 AM UTC ] (Version actuelle) – [Le bon type de variable] jpb
Ligne 1: Ligne 1:
 ====== La Sécurité ====== ====== La Sécurité ======
 Cette page recense les méthodes, fonctions et principes de la sécurité de NPDS. Cette page recense les méthodes, fonctions et principes de la sécurité de NPDS.
 +
 +===== Initalisez vos variables =====
 +Un principe simple est de **toujours initialiser** vos variables locales.
 +<code php>
 +   $tmp = '';
 +   $tmp = false;
 +   $tmp = 0;
 +   $tmp = array()
 +</code>
 +Ca ne prend que peu de temps et cela évite que ces variables contiennent autre choses que ce que vous avez voulu y mettre ...
 +
 +===== Le bon type de variable =====
 +Un autre principe simple est de toujours considérer que le type de variable provenant d'une URL, d'un formulaire, d'un cookie ou d'une session, ... n'est pas fiable.
 +
 +Une précaution élémentaire : l'utilisation de la fonction settype()
 +
 +Par exemple : 
 +<code php>
 +settype($tmp, "integer");
 +</code>
 +Si vous attendez un entier, cette fonction php va vous garantir que c'est bien un entier que vous obtiendrez. L'avantage : si il avait autre chose dans la variable $tmp settype transforme le contenu afin de respecter le type.
 +<code php>
 +  $tmp = 'je suis un code malicieux';
 +  settype($tmp, 'integer');
 +  echo $tmp;
 +</code>
 +**Abuser absolument de cette fonction !**
 +
 +===== Le bon type de variable II =====
 +Utiliser la fonction settype sur une chaine de caractère n'a pas vraiment de sens / Par contre php dispose de nombreuses fonctions permettant de faire le ménage (enfin au moins une partie) dans les variables
 +<code php>
 +   stripslashes($tmp);
 +   htmlspecialchars($tmp);
 +   urldecode($tmp);
 +</code>
 +
 +===== RemoveHack =====
 +La fonction removehack() assure à elle seule une partie significative de la sécurité de NPDS.
 +
 +Son objectif est de filtrer la chaîne de caractères que vous lui passez afin d'en modifier tout code malicieux (javascript notamment) et donc de permettre à NPDS de supporter le HTML sans trop de risque...
 +
 +**Syntaxe  I :** 
 +<code php>$tmp=removehack($chaine);</code>
 +**Syntaxe II :**
 +<code php> $query = removeHack(stripslashes(htmlspecialchars(urldecode($query),ENT_QUOTES)));</code>
 +
 +La fonction removehack() doit être utilisée sur tous les champs de formulaire (au retour du Submit), sur toute les variables passées par les URL. 
  • codeur/securite.1174516397.txt
  • Dernière modification : Mar. 21, 2007 10:33 PM UTC
  • de developpeur