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:35 PM UTC ] – developpeur | codeur:securite [Dec. 12, 2024 11:11 AM UTC ] (Version actuelle) – [Le bon type de variable] jpb | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
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. | ||
- | ===== La fonction | + | ===== Initalisez vos variables ===== |
- | Removehack | + | 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 ===== | ||
+ | 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' | ||
+ | |||
+ | Par exemple | ||
+ | <code php> | ||
+ | settype($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> | ||
+ | | ||
+ | | ||
+ | | ||
+ | </ | ||
+ | |||
+ | ===== RemoveHack ===== | ||
+ | La fonction removehack() | ||
+ | |||
+ | 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 | ||
+ | <code php> | ||
+ | **Syntaxe II :** | ||
+ | <code php> $query = removeHack(stripslashes(htmlspecialchars(urldecode($query), | ||
+ | |||
+ | 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. |