Soumettre la recherche
Mettre en ligne
Gestion de formulaires en PHP
•
1 j'aime
•
21,173 vues
Jean-Marie Renouard
Suivre
Présentation de la gestion des formulaires en PHP5
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 52
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
Introduction a la securité informatique Volume1
Introduction a la securité informatique Volume1
Sylvain Maret
Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB-LEVEL1
Tarek MOHAMED
ADMINISTRATION DES RESEAUX INFORMATIQUES By Prof. YENDE R..pdf
ADMINISTRATION DES RESEAUX INFORMATIQUES By Prof. YENDE R..pdf
FatimaMEBCHOUR2
Modélisation avec UML
Modélisation avec UML
ECAM Brussels Engineering School
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
Jaouad Assabbour
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Heithem Abbes
Introduction à la sécurité informatique
Introduction à la sécurité informatique
Yves Van Gheem
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
Amir Souissi
Recommandé
Introduction a la securité informatique Volume1
Introduction a la securité informatique Volume1
Sylvain Maret
Sécurité des Applications WEB-LEVEL1
Sécurité des Applications WEB-LEVEL1
Tarek MOHAMED
ADMINISTRATION DES RESEAUX INFORMATIQUES By Prof. YENDE R..pdf
ADMINISTRATION DES RESEAUX INFORMATIQUES By Prof. YENDE R..pdf
FatimaMEBCHOUR2
Modélisation avec UML
Modélisation avec UML
ECAM Brussels Engineering School
JWT-spring-boot-avancer.pdf
JWT-spring-boot-avancer.pdf
Jaouad Assabbour
Appels de procédures distants (RPC)
Appels de procédures distants (RPC)
Heithem Abbes
Introduction à la sécurité informatique
Introduction à la sécurité informatique
Yves Van Gheem
Chapitre 4 heritage et polymorphisme
Chapitre 4 heritage et polymorphisme
Amir Souissi
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
Nidhal Harrathi
Correction de td poo n2
Correction de td poo n2
yassine kchiri
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Antonio Fontes
Soutenance de Mon PFE de Stage (DUT)
Soutenance de Mon PFE de Stage (DUT)
Mohammed JAITI
2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique
Usmiste Rosso
Cours Visual Basic.NET
Cours Visual Basic.NET
Aziz Darouichi
Présentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobile
Nader Somrani
Support POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
Kristen Le Liboux
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Donia Hammami
Examen principal- php - correction
Examen principal- php - correction
Ines Ouaz
Introduction aux architectures des SI
Introduction aux architectures des SI
Heithem Abbes
UML
UML
angeeLee
Formation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
MOHAMMED MOURADI
petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques
Manuel Cédric EBODE MBALLA
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
Georges Amichia
Support Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
Email et PHP5
Email et PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Contenu connexe
Tendances
Présentation de PHP
Présentation de PHP
Jean-Marie Renouard
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
Nidhal Harrathi
Correction de td poo n2
Correction de td poo n2
yassine kchiri
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Heithem Abbes
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Antonio Fontes
Soutenance de Mon PFE de Stage (DUT)
Soutenance de Mon PFE de Stage (DUT)
Mohammed JAITI
2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique
Usmiste Rosso
Cours Visual Basic.NET
Cours Visual Basic.NET
Aziz Darouichi
Présentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobile
Nader Somrani
Support POO Java première partie
Support POO Java première partie
ENSET, Université Hassan II Casablanca
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
Kristen Le Liboux
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Donia Hammami
Examen principal- php - correction
Examen principal- php - correction
Ines Ouaz
Introduction aux architectures des SI
Introduction aux architectures des SI
Heithem Abbes
UML
UML
angeeLee
Formation JAVA/J2EE
Formation JAVA/J2EE
Ines Ouaz
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
MOHAMMED MOURADI
petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques
Manuel Cédric EBODE MBALLA
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
Georges Amichia
Support Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
ENSET, Université Hassan II Casablanca
Tendances
(20)
Présentation de PHP
Présentation de PHP
Conception et réalisation d'une plateforme éducative (LMS).
Conception et réalisation d'une plateforme éducative (LMS).
Correction de td poo n2
Correction de td poo n2
Architectures 3-tiers (Web)
Architectures 3-tiers (Web)
Sécurité des applications web: attaque et défense
Sécurité des applications web: attaque et défense
Soutenance de Mon PFE de Stage (DUT)
Soutenance de Mon PFE de Stage (DUT)
2015 07 14_presentation-pfe-gestion-parc-informatique
2015 07 14_presentation-pfe-gestion-parc-informatique
Cours Visual Basic.NET
Cours Visual Basic.NET
Présentation pfe Développement d'une application bancaire mobile
Présentation pfe Développement d'une application bancaire mobile
Support POO Java première partie
Support POO Java première partie
Un exemple élémentaire d'application MVC en PHP
Un exemple élémentaire d'application MVC en PHP
rapport de projet de fin d'étude_PFE
rapport de projet de fin d'étude_PFE
Examen principal- php - correction
Examen principal- php - correction
Introduction aux architectures des SI
Introduction aux architectures des SI
UML
UML
Formation JAVA/J2EE
Formation JAVA/J2EE
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
petit cours sur la sécurité des réseaux informatiques
petit cours sur la sécurité des réseaux informatiques
Etude d'une application de gestion d'une bibliothèque numérique
Etude d'une application de gestion d'une bibliothèque numérique
Support Java Avancé Troisième Partie
Support Java Avancé Troisième Partie
En vedette
Email et PHP5
Email et PHP5
Jean-Marie Renouard
SQL et MySQL
SQL et MySQL
Jean-Marie Renouard
Fichier XML et PHP5
Fichier XML et PHP5
Jean-Marie Renouard
Le client HTTP PHP5
Le client HTTP PHP5
Jean-Marie Renouard
Les structures de données PHP5
Les structures de données PHP5
Jean-Marie Renouard
Le client FTP de PHP5
Le client FTP de PHP5
Jean-Marie Renouard
Configuration PHP5
Configuration PHP5
Jean-Marie Renouard
PHP5 et les fichiers
PHP5 et les fichiers
Jean-Marie Renouard
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Jean-Marie Renouard
Ssh cookbook
Ssh cookbook
Jean-Marie Renouard
Syntaxe du langage PHP
Syntaxe du langage PHP
Jean-Marie Renouard
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Jean-Marie Renouard
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
Jean-Marie Renouard
MVC / Frameworks PHP
MVC / Frameworks PHP
Jean-Marie Renouard
Client base de données en PHP5
Client base de données en PHP5
Jean-Marie Renouard
Javascript et JQuery
Javascript et JQuery
Jean-Marie Renouard
Structure de données en PHP
Structure de données en PHP
Jean-Marie Renouard
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
elenau12
Regex php
Regex php
Bertrand day
An Analytic Network Process Modeling to Assess Technological Innovation Capab...
An Analytic Network Process Modeling to Assess Technological Innovation Capab...
drboon
En vedette
(20)
Email et PHP5
Email et PHP5
SQL et MySQL
SQL et MySQL
Fichier XML et PHP5
Fichier XML et PHP5
Le client HTTP PHP5
Le client HTTP PHP5
Les structures de données PHP5
Les structures de données PHP5
Le client FTP de PHP5
Le client FTP de PHP5
Configuration PHP5
Configuration PHP5
PHP5 et les fichiers
PHP5 et les fichiers
Manuel de sécurisation d'un serveur Linux
Manuel de sécurisation d'un serveur Linux
Ssh cookbook
Ssh cookbook
Syntaxe du langage PHP
Syntaxe du langage PHP
PHP 5 et la programmation objet
PHP 5 et la programmation objet
Sécurité et Quaité de code PHP
Sécurité et Quaité de code PHP
MVC / Frameworks PHP
MVC / Frameworks PHP
Client base de données en PHP5
Client base de données en PHP5
Javascript et JQuery
Javascript et JQuery
Structure de données en PHP
Structure de données en PHP
Tutorial 1 ahp_relative_model_ver_2.2.x
Tutorial 1 ahp_relative_model_ver_2.2.x
Regex php
Regex php
An Analytic Network Process Modeling to Assess Technological Innovation Capab...
An Analytic Network Process Modeling to Assess Technological Innovation Capab...
Similaire à Gestion de formulaires en PHP
Programmation Android - 09 - Web services
Programmation Android - 09 - Web services
Yann Caron
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Abdoulaye Dieng
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Julien Vinber
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Mickael Perraud
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
corsonr
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
Hugo Hamon
HTML5
HTML5
Neovov
HTML5 en projet
HTML5 en projet
Normandy JUG
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
IZZA Samir
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Francois Marier
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
Vincent Composieux
vue j'avais pas vu !!
vue j'avais pas vu !!
Manuel Adele
Vue, j’avais pas vu !
Vue, j’avais pas vu !
Bruno Bonnin
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Hugo Hamon
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
🏁 Pierre-Henry Soria 💡
Cours php -partie 1.pdf
Cours php -partie 1.pdf
ssuserc46a93
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
julien pauli
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Bassem ABCHA
Service WEB de type REST avec Java
Service WEB de type REST avec Java
Francois ANDRE
Html5 2
Html5 2
TECOS
Similaire à Gestion de formulaires en PHP
(20)
Programmation Android - 09 - Web services
Programmation Android - 09 - Web services
php2 : formulaire-session-PDO
php2 : formulaire-session-PDO
Meet up symfony 11 octobre 2016 - Les formulaire
Meet up symfony 11 octobre 2016 - Les formulaire
Quoi de neuf dans Zend Framework 1.10 ?
Quoi de neuf dans Zend Framework 1.10 ?
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Ouvrir vos plugins aux autres développeurs - WPTech Nantes
Symfony2 - Un Framework PHP 5 Performant
Symfony2 - Un Framework PHP 5 Performant
HTML5
HTML5
HTML5 en projet
HTML5 en projet
Atelier WordPress: Création d’extension WordPress
Atelier WordPress: Création d’extension WordPress
Persona: un système d'identité pour le Web
Persona: un système d'identité pour le Web
Soutenance Zend Framework vs Symfony
Soutenance Zend Framework vs Symfony
vue j'avais pas vu !!
vue j'avais pas vu !!
Vue, j’avais pas vu !
Vue, j’avais pas vu !
Mieux Développer en PHP avec Symfony
Mieux Développer en PHP avec Symfony
Créer une barre de progression grâce à PHP 5.4
Créer une barre de progression grâce à PHP 5.4
Cours php -partie 1.pdf
Cours php -partie 1.pdf
Communications Réseaux et HTTP avec PHP
Communications Réseaux et HTTP avec PHP
Application web php5 html5 css3 bootstrap
Application web php5 html5 css3 bootstrap
Service WEB de type REST avec Java
Service WEB de type REST avec Java
Html5 2
Html5 2
Dernier
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
MedAbdelhayeSidiAhme
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Institut de l'Elevage - Idele
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Ville de Châteauguay
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
imaneeaouattahee
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
EzechiasSteel
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
Sana REFAI
Dernier
(6)
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
pdfcoffee.com_4-production-fond-des-puits-completion-pdf-free.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
JTC 2024 Bâtiment et Photovoltaïque.pdf
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
Présentation_Soirée-Information_ Surverse_Thibert _30 avril 2024
le probleme de la planification JSP exposee (2) (2).pptx
le probleme de la planification JSP exposee (2) (2).pptx
mémoire genie civil presenté lors de la soutenance de mémoire
mémoire genie civil presenté lors de la soutenance de mémoire
Algo II: les files cours + exercices corrigés
Algo II: les files cours + exercices corrigés
Gestion de formulaires en PHP
1.
Jean-Marie Renouard LightPath
2014©
2.
Le logo PHP
est du domaine public http://commons.wikimedia.org/wiki/File:PHP-logo.svg Ce document est licencié sous licence ◦Attribution-NonCommercial-ShareAlike ◦CC BY-NC-SA Plus de détails: http://creativecommons.org/licenses/by-nc-sa/3.0/fr/ LightPath 2014© - http://www.jmrenouard.fr 2
3.
Elément de sécurité
au transfert Validation côté client Validation côté serveur Format des données Restriction des données Formulaires anti-robots Protection des données côté serveur LightPath 2014© - http://www.jmrenouard.fr 3
4.
2 types de
formulaire Structure d’un formulaire Contenu d’un formulaire Elément d’un formulaire Cas de l’upload de fichiers Récupération des données d’un formulaire Récupération des fichiers uploadés LightPath 2014© - http://www.jmrenouard.fr 4
5.
LightPath 2014© -
http://www.jmrenouard.fr 5
6.
Formulaire type GET
◦ Récupération d’information ◦ Les éléments constituent les paramètres. ◦<FORM METHOD=« GET » … Formulaire type POST ◦ Envoi d’information ◦ Les éléments constituent les données à traiter. ◦<FORM METHOD=« POST » … LightPath 2014© - http://www.jmrenouard.fr 6
7.
LightPath 2014© -
http://www.jmrenouard.fr 7
8.
METHOD: Méthode de
transfert ACTION: URL d’envoi ENCTYPE: Type d’encodage ELEMENTS: Ensemble d’élément du formulaire ◦ Zone d’échange d’information ◦Ne sont transmis qu’à la validation du formulaire LightPath 2014© - http://www.jmrenouard.fr 8
9.
<FORM method=« post
» action=« post.php"> Login: <INPUT type=« text » name=« login" /> <br/> Password: <INPUT type=« password » name=« password" /> <br/> <INPUT type="submit" value="Envoyer"> </FORM> LightPath 2014© - http://www.jmrenouard.fr 9
10.
LightPath 2014© -
http://www.jmrenouard.fr 10
11.
Les entrées Les
sélecteurs Les zones de texte LightPath 2014© - http://www.jmrenouard.fr 11
12.
Une ligne de
saisie Déclaration du type d’entrée ◦Attribut type ◦<input type=« xxx » Définition d’un nom à chaque entrée ◦Attribut name ◦<input name=« nom » …/> LightPath 2014© - http://www.jmrenouard.fr 12
13.
Assignation d’une valeur
par défaut ◦Attribut value ◦<input value=« moi » …/> Assignation d’une taille ◦Attribut size ◦<input size=« 10 » …/> LightPath 2014© - http://www.jmrenouard.fr 13
14.
Text: Saisie non
masquée de texte Password: Saisie masquée de texte Hidden: Champ caché à l’affichage File: Champ de sélection de fichier LightPath 2014© - http://www.jmrenouard.fr 14
15.
Radio: case type
radio/choix exclusif Checkbox: case type case à cocher LightPath 2014© - http://www.jmrenouard.fr 15
16.
submit: Bouton d’envoi
de formulaire reset: Bouton de remise à zéro image: Bouton d’envoi de formulaire ◦Attribut src ◦<input type=« image » src=« envoi.png » … LightPath 2014© - http://www.jmrenouard.fr 16
17.
Menu type drop
down <SELECT><option>…</option>…</SELECT> Définition d’un nom du sélecteur ◦<Select name=« menu » …</select> Activation de la sélection multiple ◦<Select multiple=« 1 » …</select> LightPath 2014© - http://www.jmrenouard.fr 17
18.
Une option d’un
sélecteur ◦<option>…</option> Affectation d’un valeur à une option ◦Attribut value ◦<option value=« pierre »>Pierre</option> Sélection par défaut ◦Attribut selected ◦<option SELECTED >Pierre</option> LightPath 2014© - http://www.jmrenouard.fr 18
19.
Zone de texte
libre non masquée ◦<TEXTAREA></TEXTAREA> Définition d’un nom du sélecteur ◦Attribut name ◦<TEXTAREA name=« menu »></ TEXTAREA > Définition de la taille en colonne et ligne ◦Attributs cols et rows ◦<TEXTAREA cols=« 10 » rows=« 10 » ></ TEXTAREA > LightPath 2014© - http://www.jmrenouard.fr 19
20.
LightPath 2014© -
http://www.jmrenouard.fr 20
21.
Entrée type file
◦<input type=« file » name=«fichier »/> La balise form avec un attribut enctype ◦<form enctype=« multipart/form- data »>…</form> Autorisation de transmission en plusieurs Requêtes HTTP (multipart ). LightPath 2014© - http://www.jmrenouard.fr 21
22.
Envoi de plusieurs
valeurs Utilisation des crochets dans l’attribut name ◦<input name =« fichier[] » …> ◦<input name =« fichier[] » …> Valable pour toutes les types d’entrée ◦Ex: option LightPath 2014© - http://www.jmrenouard.fr 22
23.
LightPath 2014© -
http://www.jmrenouard.fr 23
24.
Tout est dans
le tableau $_GET Les attributs name des éléments servent directement comme clé du tableau. foreach ($_GET as $k => $v) echo « $k = $v »; LightPath 2014© - http://www.jmrenouard.fr 24
25.
Tout est dans
le tableau $_POST Les attributs name des éléments servent directement comme clé du tableau. foreach ($_POST as $k => $v) echo « $k = $v »; . LightPath 2014© - http://www.jmrenouard.fr 25
26.
LightPath 2014© -
http://www.jmrenouard.fr 26
27.
Tout est dans
le tableau $_FILE Chaque entrée du tableau correspond à un fichier La clé est le nom de l’entrée Chaque élément du tableau contient: ◦Le nom du fichier d’origine: $_FILES[‘fichier1’][‘name’] ◦Le type mime : $_FILES[‘fichier1’][‘type’] ◦La taille du fichier: $_FILES[‘fichier1’][‘size’] ◦Le nom du fichier temporaire local: $_FILES[‘fichier1’][‘tmp_name’] ◦Le code d’erreur du fichier : $_FILES[‘fichier1’][‘error’] . LightPath 2014© - http://www.jmrenouard.fr 27
28.
LightPath 2014© -
http://www.jmrenouard.fr 28
29.
Passage en HTTPS
Le site est souvent en HTTPs intégral. <form ACTION=« https://serveur.com/post.php » …></form> LightPath 2014© - http://www.jmrenouard.fr 29
30.
LightPath 2014© -
http://www.jmrenouard.fr 30
31.
Réalisation par script
JS Peu fiable ( attaque ) Inutile si Javascript désactivé Facilitation de contournement. LightPath 2014© - http://www.jmrenouard.fr 31
32.
<form onsubmit="return valide_form
( );" …> A l’envoi, la fonction valide_form est invoqué: ◦Si true est renvoyé par la méthode JS, le formulaire est envoyé. ◦Sinon, il faut effectuer une nouvelle soumission. LightPath 2014© - http://www.jmrenouard.fr 32
33.
<form name=« formulaire»
method="post" action=« post.php" onsubmit="return valide_form ( );"> <h1>Entrer Votre Nom</h1> <p>Votre Nom: <input type="text" name="nom"></p> <p><input type="submit" name="send" value=« Envoyer"></p> </form> LightPath 2014© - http://www.jmrenouard.fr 33
34.
<script type="text/javascript"> <!–
function valide_form ( ) { valid = true; if ( document.formulaire.nom.value == "" ) { alert ( « Remplisser le nom." ); valid = false; } return valid; } //--> </script> LightPath 2014© - http://www.jmrenouard.fr 34
35.
LightPath 2014© -
http://www.jmrenouard.fr 35
36.
Fiable car contrôlé
par l’application L’utilisateur ne peut altérer le comportement. Il peut le détourner seulement. Si les données ne sont pas correctes, ◦Pas de traitement des données ◦Renvoi d’un nouveau formulaire avec les erreurs LightPath 2014© - http://www.jmrenouard.fr 36
37.
LightPath 2014© -
http://www.jmrenouard.fr 37
38.
Vérification de la
taille des chaînes ◦if (count($_POST[‘nom’] > 255) { …} Vérification du type ◦is_array, is_bool, is_callable, is_double, is_float, is_int, is_integer, is_long, is_null, isset, is_numéric, is_object, is_real, is_resource, is_scalar, is_string LightPath 2014© - http://www.jmrenouard.fr 38
39.
Vérification format email:
◦if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9- ]+(.[a-z0-9-]+)*(.[a-z]{2,3})$", $email)){ …} Vérification d’une date ◦If (!preg_match( '`^d{1,2}/d{1,2}/d{4}$`' , $value ) ) {…} LightPath 2014© - http://www.jmrenouard.fr 39
40.
La fonction filter_var
permet la validation de certains formats: ◦FILTER_VALIDATE_BOOLEAN ◦FILTER_VALIDATE_EMAIL ◦FILTER_VALIDATE_FLOAT ◦FILTER_VALIDATE_INT ◦FILTER_VALIDATE_IP ◦FILTER_VALIDATE_REGEXP ◦FILTER_VALIDATE_URL LightPath 2014© - http://www.jmrenouard.fr 40
41.
LightPath 2014© -
http://www.jmrenouard.fr 41
42.
$allow=array(‘nom ’, ‘comments’);
foreach ($_POST as $key => $val) { if (! in_array($allow, $key) { unset($_POST[$key]); } } LightPath 2014© - http://www.jmrenouard.fr 42
43.
LightPath 2014© -
http://www.jmrenouard.fr 43
44.
Utilisation d’un catcha
Image avec formulaire de saisie Blocage de tous les robots sans OCR. Élimination de 99% des spams LightPath 2014© - http://www.jmrenouard.fr 44
45.
Génération d’une chaîne
aléatoire Stockage de la clé MD5 de la chaîne en SESSION ($_SESSION) Création de l’image de la chaîne Envoi du résultat. LightPath 2014© - http://www.jmrenouard.fr 45
46.
Récupération de la
valeur du catcha Calcul de la clé MD5 de la valeur Comparaison avec la valeur en session. Si pas identique, régénérer une image. Si identique, supprimer l’entrée en session LightPath 2014© - http://www.jmrenouard.fr 46
47.
LightPath 2014© -
http://www.jmrenouard.fr 47
48.
Retrait de tous
les caractères sensibles Encodage des caractères sensibles But est d’éviter les attaques: ◦Empêcher les attaques de XSS Risques: ◦Redirection ◦Vol d’information ◦Ralentissement ◦Exécution d’action non désirée en fond LightPath 2014© - http://www.jmrenouard.fr 48
49.
Retrait de balises
HTML: strip_tags Encodage html: htmlentities Encode url: urlencode LightPath 2014© - http://www.jmrenouard.fr 49
50.
La fonction filter_var
permet l’épuration ◦FILTER_SANITIZE_EMAIL ◦FILTER_SANITIZE_ENCODED ◦FILTER_SANITIZE_MAGIC_QUOTES ◦FILTER_SANITIZE_NUMBER_FLOAT ◦FILTER_SANITIZE_NUMBER_INT ◦FILTER_SANITIZE_SPECIAL_CHARS ◦FILTER_SANITIZE_STRING ◦FILTER_SANITIZE_STRIPPED ◦FILTER_SANITIZE_URL ◦FILTER_UNSAFE_RAW LightPath 2014© - http://www.jmrenouard.fr 50
51.
Documentation du PHP
http://www.php.net/docs LightPath 2014© - http://www.jmrenouard.fr 51
52.
LightPath: ◦Société de
conseil et d’ingénierie ◦Formations, Conseil, Audit et mise en oeuvre ◦jmrenouard@lightpath.fr Jean-Marie RENOUARD ◦jmrenouard@gmail.com ◦Twitter: @jmrenouard ◦http://www.jmrenouard.fr LightPath 2014© - http://www.jmrenouard.fr 52
Télécharger maintenant