Différences
Ci-dessous, les différences entre deux révisions de la page.
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:45 PM UTC ] – developpeur | codeur: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() | ||
+ | </ | ||
+ | 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' | + | Une précaution élémentaire : l' |
- | Par exemple : settype($tmp, | + | Par exemple : |
- | + | <code php> | |
- | '' | + | |
settype($tmp, | settype($tmp, | ||
- | echo $tmp;'' | + | </ |
+ | Si vous attendez un entier, cette fonction php va vous garantir que c'est bien un entier que vous obtiendrez. L' | ||
+ | <code php> | ||
+ | $tmp = 'je suis un code malicieux' | ||
+ | settype($tmp, | ||
+ | echo $tmp; | ||
+ | </ | ||
+ | **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> | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
- | ===== La fonction principale : RemoveHack ===== | + | ===== RemoveHack ===== |
- | Removehack | + | La fonction removehack() |
- | Son objectif est de filtrer la chaine | + | Son objectif est de filtrer la chaîne |
- | | + | **Syntaxe |
+ | <code php>$tmp=removehack($chaine); | ||
+ | **Syntaxe II :** | ||
+ | <code php> $query = removeHack(stripslashes(htmlspecialchars(urldecode($query), | ||
- | RemoveHack | + | La fonction removehack() |