codeur:securite

Différences

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

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
codeur:securite [Mar. 21, 2007 10:58 PM UTC ] developpeurcodeur:securite [Dec. 12, 2024 11:11 AM UTC ] (Version actuelle) – [Le bon type de variable] jpb
Ligne 3: Ligne 3:
  
 ===== Initalisez vos variables ===== ===== Initalisez vos variables =====
-Un principe simple est de toujours initialiser vos variables locales. +Un principe simple est de **toujours initialiser** vos variables locales. 
- +<code php> 
-   $tmp=""+   $tmp = ''
-   $tmp=false; +   $tmp = false; 
-   $tmp=0; +   $tmp = 0; 
- +   $tmp = array() 
-Ca ne prend que peut de temps et cela évite que ces variables contiennent autre choses que ce que vous avez voulu y mettre ...+</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 ===== ===== Le bon type de variable =====
-Un 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.+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+Une précaution élémentaire : l'utilisation de la fonction settype()
  
-Par exemple : settype($tmp, "integer"); 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 tranforme le contenu afin de respecter le type. +Par exemple :  
- +<code php> 
-  $tmp="je suis un code malicieu"+settype($tmp, "integer"); 
-  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;   echo $tmp;
- +</code> 
-Abuser absolument de cette fonction !+**Abuser absolument de cette fonction !**
  
 ===== Le bon type de variable II ===== ===== 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 +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( +   stripslashes($tmp); 
-   htmlspecialchars( +   htmlspecialchars($tmp); 
-   urldecode( +   urldecode($tmp); 
 +</code>
  
 ===== RemoveHack ===== ===== RemoveHack =====
-Removehack assure elle seule une partie significative de la sécurité de NPDS. +La fonction removehack() assure à elle seule une partie significative de la sécurité de NPDS.
- +
-Son objectif est de filtrer la chaine de caractére que vous lui passer afin d'en modifier tout code malicieux (javascript notament) et donc de permettre à NPDS de supporter le HTML sans trop de risque+
  
-  Syntaxe  I : $tmp=removehack($chaine);+Son objectif est de filtrer la chaîne de caractères que vous lui passez afin d'en modifier tout code malicieux (javascript notammentet donc de permettre à NPDS de supporter le HTML sans trop de risque...
  
-  Syntaxe II : $query = removeHack(stripslashes(htmlspecialchars(urldecode($query),ENT_QUOTES)));+**Syntaxe  I :**  
 +<code php>$tmp=removehack($chaine);</code> 
 +**Syntaxe II :** 
 +<code php> $query = removeHack(stripslashes(htmlspecialchars(urldecode($query),ENT_QUOTES)));</code>
  
-RemoveHack doit être utilisée sur tous les champs de formulaire (au retour du Submit), sur toute les variables passées par les URL +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.1174517928.txt
  • Dernière modification : Mar. 21, 2007 10:58 PM UTC
  • de developpeur