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 :

Quels caractères interdire pour les logins utilisateurs ?


Sujet :

Langage PHP

  1. #1
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 665
    Points : 863
    Points
    863
    Par défaut Quels caractères interdire pour les logins utilisateurs ?
    Salut a tous,

    je suis en train de me demander quelles sont les caractère a interdire lors de la saisi d'un nom d'utilisateur?

    (ps:je fait un stiptags avant)
    manganimes (en construction) -
    zemanga

  2. #2
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    tout depend de ce que tu en fais si tu veux l'afficher ou non.
    en générale on le crypt en db.
    choisi plutot les caractere que tu utilises.
    car si tu tombe sur un utilisateur vicieux ;-)
    il peut tjrs utiliser l'ASCII pour rentrer des sigles "bizarre"
    £ô♂♪
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  3. #3
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 665
    Points : 863
    Points
    863
    Par défaut
    Citation Envoyé par XtofRoland
    tout depend de ce que tu en fais si tu veux l'afficher ou non.
    en générale on le crypt en db.
    choisi plutot les caractere que tu utilises.
    car si tu tombe sur un utilisateur vicieux ;-)
    il peut tjrs utiliser l'ASCII pour rentrer des sigles "bizarre"
    £ô♂♪
    A part avoir des caractere bizarre a l'affichage il n'y a pas d'autres risques?

    Ca me dérange pas si les utilisateurs utilise des pseudo étrange (tant qu'il ne l'oublie pas ).
    manganimes (en construction) -
    zemanga

  4. #4
    Membre actif
    Inscrit en
    janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : janvier 2004
    Messages : 242
    Points : 271
    Points
    271
    Par défaut
    Citation Envoyé par Death83
    Citation Envoyé par XtofRoland
    tout depend de ce que tu en fais si tu veux l'afficher ou non.
    en générale on le crypt en db.
    choisi plutot les caractere que tu utilises.
    car si tu tombe sur un utilisateur vicieux ;-)
    il peut tjrs utiliser l'ASCII pour rentrer des sigles "bizarre"
    £ô♂♪
    A part avoir des caractere bizarre a l'affichage il n'y a pas d'autres risques?

    Ca me dérange pas si les utilisateurs utilise des pseudo étrange (tant qu'il ne l'oublie pas ).
    controlle juste l'sql injection et le cross site scripting, apres le login qu'il choisi , tu t'en fou

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 721
    Points : 29 982
    Points
    29 982
    Par défaut
    Salut

    Si tu es concerné par la sécurité, ce n'est pas seulement au niveau du login qu'il faut agir mais à chaque données utilisateur.
    En outre, il ne faudrait pas "interdire des chars" mais au contraire "autoriser une liste précise" au moyen de regex.

  6. #6
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    A part avoir des caractere bizarre a l'affichage il n'y a pas d'autres risques?

    Ca me dérange pas si les utilisateurs utilise des pseudo étrange (tant qu'il ne l'oublie pas ).
    il existe des caracteres non affichable
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  7. #7
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 665
    Points : 863
    Points
    863
    Par défaut
    Citation Envoyé par Kirkis
    Salut

    Si tu es concerné par la sécurité, ce n'est pas seulement au niveau du login qu'il faut agir mais à chaque données utilisateur.
    En outre, il ne faudrait pas "interdire des chars" mais au contraire "autoriser une liste précise" au moyen de regex.
    J'ustement j'utilise les REGEX.

    Et je voulais savoir quel sont les caractères a enlevé (pour faire ma liste jsutement ).

    Par exemple phpbb autorise la pluspart des caractères. ( ( & ° $ )....
    Ce qui est plus sympa pour personnaliser son pseudo.
    manganimes (en construction) -
    zemanga

  8. #8
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 762
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 762
    Points : 5 204
    Points
    5 204
    Par défaut
    Perso en Latin-1 j'autorise tout les caractères imprimables non blancs + l'espace (n° 32 => 126 et 161 => 255)
    Bien sûr je prends garde aux injections SQL, et à l'affichage j'utilise htmlspecialchars( ).
    Y'a rien de pire que les sites qui refusent les pseudos contenant des é ou des . sans raison valable, en général je n'y remets jamais les pieds.
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  9. #9
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 721
    Points : 29 982
    Points
    29 982
    Par défaut
    Je suis de l'avis de Séb, il n'y a pas vraiment de raison de supprimer des caractères du moment que tu prends garde aux injections, ce qui est réglé avec mysql_real_escape_string().
    Si vraiment tu veux brider les cars autorisés, n'utilise pas une classe négative mais plutôt une liste blanche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if(preg_match('/[^&%$...]*/', $login) // pas bon
    if(preg_match('/[a-z][a-z0-9`@|...]*/i', $login) // ok

  10. #10
    Membre éprouvé Avatar de macbook
    Inscrit en
    février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    A part le dièse, quel caractère pourrait poser problème ?
    Consultant idéaliste.

  11. #11
    Membre éprouvé Avatar de trattos
    Profil pro
    Inscrit en
    juillet 2003
    Messages
    1 000
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : juillet 2003
    Messages : 1 000
    Points : 1 078
    Points
    1 078
    Par défaut
    Citation Envoyé par macbook
    A part le dièse, quel caractère pourrait poser problème ?
    Les espaces, les quotes, les doubles quotes, ...

  12. #12
    Membre éprouvé Avatar de macbook
    Inscrit en
    février 2006
    Messages
    838
    Détails du profil
    Informations forums :
    Inscription : février 2006
    Messages : 838
    Points : 1 009
    Points
    1 009
    Par défaut
    Curieux. Si l'on filtre correctement les données de l'utilisateur comment les quotes et doubles quotes peuvent interférer dans une requête, ou dans un affichage ?

    Pour les espaces je suis plus perplexe.
    Consultant idéaliste.

  13. #13
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 665
    Points : 863
    Points
    863
    Par défaut
    Non les espaces ca marche tres bien. (la preuce sur phpbb on peut se faire des pseudo avec des espaces.

    POur ce qui est des ' et des " un addslashes et stipslashes suffit.

    Par contre, pour éviter les injection est-ce que stripstags suffit?
    manganimes (en construction) -
    zemanga

  14. #14
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 762
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 762
    Points : 5 204
    Points
    5 204
    Par défaut
    Citation Envoyé par Death83
    POur ce qui est des ' et des " un addslashes et stipslashes suffit.
    ?! Pourquoi addslashes( ) ?
    Si les magic-quotes sont activées : faire un stripslashes( ) sur les éléments de $_POST
    Ensuite pour éviter toute injection SQL et échapper les ' et les " : mysql_real_escape_string( )
    Tu ne devrais pas avoir besoin de addslashes( ).

    Citation Envoyé par Death83
    Par contre, pour éviter les injection est-ce que stripstags suffit?
    Tu parles des injections HTML ? Si tu fais du striptags( ) ça revient à interdire le caractère < .
    Pour éviter d'interdire tout caractère imprimable j'utilise htmlspecialchars( ). => Ex : un user s'appele "<strong>", à l'affichage je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo htmlspecialchars($nickname, ENT_QUOTES) ;
    À l'écran : <strong>
    Dans la source : &lt;strong&gt;
    => Pas de problème
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  15. #15
    Membre éclairé Avatar de Death83
    Profil pro
    Inscrit en
    mars 2005
    Messages
    1 665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : mars 2005
    Messages : 1 665
    Points : 863
    Points
    863
    Par défaut
    En gros pour etre serrain il faut faire un mysql_real_escape_string( ) à la saisie et un htmlspecialchars( ) à l'affichage et ca devrait être bon.

    C'est bien ca?
    manganimes (en construction) -
    zemanga

  16. #16
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 721
    Points : 29 982
    Points
    29 982
    Par défaut
    Pour être précis, htmlspecialchars() et htmlentities() ne font pas partie de la sécurité. C'est pour être content que tu les utilises, pour éviter des bugs d'affichage.
    Sinon oui, pour être serein, mysql_real_escape_string() suffit. Pas besoin d'interdire des caractères.

  17. #17
    Expert confirmé Avatar de Séb.
    Profil pro
    Inscrit en
    mars 2005
    Messages
    3 762
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2005
    Messages : 3 762
    Points : 5 204
    Points
    5 204
    Par défaut
    Citation Envoyé par Kirkis
    Pour être précis, htmlspecialchars() et htmlentities() ne font pas partie de la sécurité. C'est pour être content que tu les utilises, pour éviter des bugs d'affichage.
    Un utilisateur x qui exécute un JavaScript chez un utilisateur y ce n'est pas qu'un bug d'affichage
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  18. #18
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 721
    Points : 29 982
    Points
    29 982
    Par défaut
    Okay, je retire ce que j'ai dit plus haut.
    Je ne suis pas un vicieux moi, je ne pense jamais à ces trucs-là...

  19. #19
    Membre averti Avatar de XtofRoland
    Profil pro
    Inscrit en
    août 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : août 2005
    Messages : 357
    Points : 392
    Points
    392
    Par défaut
    juste pour vous prendre la tete ;-)

    dans le cas ou vous transformez <strong> en &lt;strong&gt;

    je choisi le pseudo <<<<<<<<<<<<<<< car le formulaire me permet de rentrer x caracteres

    en base de données &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; soit 4 fois plus de char

    c'est une bétise mais bon faut y penser.
    Le but de tout developpeur OO est de devenir une référence.
    Mon avatar est un ambigramme, les curieux peuvent le retourner ;-)
    Aider <> Faire a la place de!!!

  20. #20
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : février 2004
    Messages : 13 721
    Points : 29 982
    Points
    29 982
    Par défaut
    Non, tu n'enregistres pas le htmlspecialchars(), tu l'affiches.

Discussions similaires

  1. [SECURITE] Quel Audit Option pour les Failed login ?
    Par Arvulis dans le forum Administration
    Réponses: 1
    Dernier message: 01/09/2009, 10h45
  2. [Mysql] Caractère chinois pour les champs
    Par madevilts dans le forum Visio
    Réponses: 2
    Dernier message: 22/10/2007, 10h27
  3. Quel type SQL pour les chiffres
    Par marquito dans le forum Langage SQL
    Réponses: 2
    Dernier message: 19/06/2007, 15h23
  4. Quel SGBD choisir pour les outils mobiles : Palm, BlackBerry ?
    Par ginkas31 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 12/06/2007, 10h57
  5. Quel SGBD choisir pour les données vectorielles ?
    Par fab dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 25/04/2007, 18h21

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