Académique Documents
Professionnel Documents
Culture Documents
M. BOUMEDIENE
xx 2021
1 Traitement de formulaire
3 Cross-site Scripting
Plan
1 Traitement de formulaire
3 Cross-site Scripting
Exemple de formulaire
<!−− myForm . php −−>
<form a c t i o n = " myForm . php " method= " g e t ">
Name<b r />
<i nput type= " t e x t " name=" theName " /><b r /><b r />
E−mail<b r />
<i nput
type= " e m a i l "
name=" t h e E m a i l "
/><b r /><b r />
F a v o r i t e S u b j e c t ( s )<b r />
<i nput type= " c h e c k b o x " name=" s u b j e c t s [ ] " v a l u e = " math "
,→ />Math
<i nput type= " c h e c k b o x " name=" s u b j e c t s [ ] " v a l u e = " c o d i n g "
,→ />C o d i n g
<i nput type= " c h e c k b o x " name=" s u b j e c t s [ ] " v a l u e = " e n g l i s h "
,→ />E n g l i s h <b r /><b r />
G e n d e r<b r />
<i nput type= " r a d i o " name=" g e n d e r " v a l u e = "m" />Male
<i nput type= " r a d i o " name=" g e n d e r " v a l u e = " f " />Female
<i nput type= " s u b m i t " name=" s u b m i t B u t t o n " v a l u e = " Submit " />
</ form>
La suite de myForm.php
Notre script PHP teste si l’utilisateur a bien cliqué sur le bouton "Submit" et cela
on vérifiant l’existence de l’élément submitButton dans $_GET
Maintenant avant de pouvoir manipuler les données reçues, il faut les filtrer et ce
processus consiste à nettoyer et à valider ces données ou ces variables
Le filtrage des données et très important car un utilisateur peut nous envoyer
n’import quoi soit de manière volontaire ou involontaire
Plan
1 Traitement de formulaire
3 Cross-site Scripting
Première étape du filtrage consiste à nettoyer les variables des caractères invalides
La fonction filter_var() nettoie les variables en se basant sur un ensemble de filtres
pré-définis en PHP (ici la liste complète des filtres)
$ e m a i l = " a h m e d @ @ i n t t i c . dz // " ;
echo " e m a i l = " , f i l t e r _ v a r ( $ e m a i l , FILTER_SANITIZE_EMAIL ) ," < br >";
// e m a i l = a h m e d @ @ i n t t i c . dz
$a = " ∗ 1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 i " ;
echo " a = " , f i l t e r _ v a r ( $a , FILTER_SANITIZE_NUMBER_INT ) ," < br >";
// a = 15 5 55 55 55 5 55 55 5
$b = " − 1 5 2 , 6 3 6 . 3 6 5 // / " ;
echo " b = " , f i l t e r _ v a r ( $b ,
,→ FILTER_SANITIZE_NUMBER_FLOAT , FILTER_FLAG_ALLOW_FRACTION) ," < br >
// b = −152636.365
$ u r l = "www . i n t t i c Ã Ć . Âřdz " ;
echo " u r l = " , f i l t e r _ v a r ( $ u r l , FILTER_SANITIZE_URL ) ," < br >";
// u r l = www . i n t t i c . dz
$a = " 1 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 " ;
$a = f i l t e r _ v a r ( $a , FILTER_SANITIZE_NUMBER_INT ) ;
i f ( f i l t e r _ v a r ( $a , FILTER_VALIDATE_INT ) )
echo ' y o u r i n t i s v a l i d ' , '<br>' ;
else
echo ' y o u r i n t i s n o t v a l i d ' , '<br>' ;
Plan
1 Traitement de formulaire
3 Cross-site Scripting