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:48 PM UTC ] 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 ===== ===== 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
 +<code php>
 +   stripslashes($tmp);
 +   htmlspecialchars($tmp);
 +   urldecode($tmp);
 +</code>
  
-===== La fonction principale : 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+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 : $tmp=removehack($chaine);+**Syntaxe  :**  
 +<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.1174517292.txt
  • Dernière modification : Mar. 21, 2007 10:48 PM UTC
  • de developpeur