Accueil > Programmation > PHP > PHP:trucs de "sécurité" informatique
PHP:trucs de "sécurité" informatique
Publié le 8 avril 2017, dernière mise-à-jour le 26 août 2019, 6 visites, visites totales.
sécurité , d’après François Gannaz ( francois.gannaz at silecs.info ) et rootme
- white list pas black list
- codesniffer pour vérifier ( php-codesniffer )
- gestion des erreurs
trucs divers
-
- php-xdebug sur les serveurs de développement
- validations
- La validation javascript est une aide pour l’utilisateur, pas pour le serveur.
- ctype_ et is_
ctype_digit("[0-9]+" ) | True |
ctype_digit([0-9]+ ) | True si nb<-127 ou > 128 |
False si -127<=nb<=128 | |
ctype_digit( "5.3" ) | False |
ctype_digit(divers ) | False |
ctype_alnum() - Check for alphanumeric character(s)
ctype_xdigit() - Check for character(s) representing a hexadecimal digit
is_numeric() - Finds whether a variable is a number or a numeric string
is_int() - Find whether the type of a variable is integer
is_string() - Find whether the type of a variable is string
ctype_digit() - Check for numeric character(s)
setlocale() - Set locale information
-
- filter_input
- sortie html
-
Protéger les caractères sensibles : htmlspecialchars($var) ;
Protéger tous les caractères : htmlentities($var,...) et mb_htmlentities($var,...)
ENT_COMPAT|ENT_QUOTES|ENT_NOQUOTES
Enlever les balises HTML : striptags($text) ;
Encodage spécifique pour URL : urlencode($var) ;
ext/Filter peut non seulement valider mais aussi filtrer en sortie avec FILTER_SANITIZE_*
- Comment s’assurer qu’un champ caché n’a pas été modifié ?
- Envoyer en parallèle un hash contrôlant la valeur.
- Comment éviter qu’en rechargeant la page on relance une action ?
- Stocker dans une table un identifiant unique, créé avec uniqid("blah-",True)
- suprimer les retorus à la ligne
preg_replace( '/\n|\r|\t|%0A|%0D|%08|%09/i' , '' , $_POST[ 'subject' ]);
- captcha : noter - par exemple - que asus utilise ses propres captcha
asus | |
créé par moi | |
phpcaptcha |
- destruction des variables
utiliser plusieurs php
pb : pas de phpmyadmin ? cd /var/www/html && git clone --depth=1 --branch=STABLE https://github.com/phpmyadmin/phpmyadmin.git