IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Sécurisation de formulaire


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut Sécurisation de formulaire
    Bonjour à tous,

    bon je pense qu'on va me dire qu'on retrouve ce sujet ailleurs sur le forum etc... Mais si je met quand même ce post c'est une, pour être sûr de ce que je fais et deux, pour avoir quelques réponses à mes questions.

    Car après avoir écumé Forum et bouquin je voudrais être certains d'avoir compris (ou pas).

    Donc, j'ai un formulaire qui demande le Nom, Prénom de la personne ainsi que d'autres informations.

    J'ai aussi des champs, 'téléphone', 'bureau', etc... Eux je pense que ce n'est pas la peine de les protéger vu qu'avec du Javascript j'ai limité l'entrée uniquement aux chiffres.

    Le charset utilisé est UTF-8.

    Voici mon code pour le champ prénom :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $prenom = $_SESSION['prenom'];
    $prenom=utf8_decode($prenom);
    $prenom=addslashes($prenom);
    $prenom=htmlentities($prenom);
    $prenom=utf8_encode($prenom);
    $prenom=trim($prenom);
    Donc, si j'ai bien compris le addslashes, c'est pour protéger les caractères (comme les ') en vue d'être enregistré dans une base de données. Ce qui n'est pas le cas encore mais le sera très prochainement.

    htmlentities, pour éviter de prendre en compte les balises HTML.

    trim, enlève certains caractères comme les retours chariots.

    Par contre je ne comprends pas l'usage des utf8_decode et utf8_encode.
    Si je ne met pas ça dans mon code, les caractères accentués ne passent pas.

    Voilà, merci de m'orienter, de me confirmer (ou infirmer) ce que j'ai écris et si j'ai oublié quelque chose pour la sécurité, merci aussi de m'en faire part.

    Bonne journée.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Eux je pense que ce n'est pas la peine de les protéger vu qu'avec du Javascript j'ai limité l'entrée
    Javascript ne peut servir que comme aide a la saisie mais pas comme protection : un utilisateur qui a desactivé le javascript pourra saisir n'importe quoi dans ton formulaire.

    Donc, si j'ai bien compris le addslashes, c'est pour protéger les caractères (comme les ') en vue d'être enregistré dans une base de données.
    En fait c'est "en vue d'être inséré dans une requete" pour les problemes d'injection SQL et même tout simplement pour la bonne prise en compte des chaines avec des guillemets lorsqu'on construit une requete en concatenant les elements.

    Les informations dans la base de donnée n'ont, en elle même pas besoin d'être echappées.
    D'ailleurs dans l'orientation actuelle est d'utiliser les requêtes préparées pour lequel on n'a plus besoin d'échapper les caractères.

    htmlentities, pour éviter de prendre en compte les balises HTML.
    Effectivement htmlentities empeche que du code html ou javascript soit affiché la ou il ne devrait pas.

    Par contre je ne comprends pas l'usage des utf8_decode et utf8_encode.
    http://fr.php.net/utf8_decode
    ca ne sert que ca si tu as besoin de passer des données encodées en ISO vers des données encodées en UTF8 et vice-verca.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Merci pour ta réponse Sabotage.

    Pour en revenir au Javascript, je bloque ma page si il est désactivé.
    Donc, à priori il peut pas passer outre. Je précise que c'est pour un site Intranet d'entreprise et que de plus on est obliger de passer par Internet Explorer 6.0 (limitation de notre service info).

    Sinon, ok pour le utf8_encode et decode mais alors pourquoi, si je n'est pas ces deux lignes je me retrouves avec des caractères bizarres quand j'utilise des accents ? J'ai pas l'intérêt dans ce cas de figure de passer en ISO.

    Mon serveur est configuré en UTF, mon Charset aussi et l'encodage de mes pages également. As-tu une idée ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Pour en revenir au Javascript, je bloque ma page si il est désactivé.
    et si je desactive le javascript apres être arrivé sur ta page ?

    Pour l'encodage, tu dois avoir quelque chose, quelque part qui n'est pas si UTF8 que ca
    Que tu parles d'encodage des pages, tu parles bien de l'encodage des fichiers ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Par défaut
    Citation Envoyé par sabotage Voir le message
    et si je desactive le javascript apres être arrivé sur ta page ?

    Pour l'encodage, tu dois avoir quelque chose, quelque part qui n'est pas si UTF8 que ca
    Que tu parles d'encodage des pages, tu parles bien de l'encodage des fichiers ?
    Ah, je ne n'avais effectivement pas penser à cette solution pour Javascript. Donc je dois tout protéger... ok...

    Pour l'encodage des pages, je travaille avec Komodo. J'ai mes pages ouvertes dans des onglets, je fais bouton droit, properties and settings et là,à file Settings j'ai une ligne Encoding où je choisis UTF-8. Donc je dirais oui à ta question, après il y'a peut-être un autre endroit à changer mais je ne vois pas où.

  6. #6
    Invité
    Invité(e)
    Par défaut
    A voir (peut-etre) :
    http://securite.developpez.com/

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. sécuriser un formulaire par une équation
    Par aboura86 dans le forum Langage
    Réponses: 8
    Dernier message: 03/07/2008, 18h03
  2. Sécuriser mon formulaire
    Par isa150183 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2007, 18h34
  3. Sécuriser un formulaire
    Par Z3c33 dans le forum Sécurité
    Réponses: 3
    Dernier message: 25/05/2007, 14h52
  4. Sécuriser un formulaire
    Par jerem78 dans le forum Sécurité
    Réponses: 2
    Dernier message: 07/06/2006, 17h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo