Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/03/2006, 15h29   #1
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
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
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 15h35   #2
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
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!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 15h40   #3
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
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
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 16h32   #4
Membre confirmé
 
Inscription : janvier 2004
Messages : 242
Détails du profil
Informations forums :
Inscription : janvier 2004
Messages : 242
Points : 245
Points : 245
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
chaced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 16h40   #5
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 16h55   #6
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
Citation:
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!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 17h17   #7
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
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
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 18h48   #8
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
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.
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 19h45   #9
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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 :
1
2
if(preg_match('/[^&%$...]*/', $login) // pas bon
if(preg_match('/[a-z][a-z0-9`@|...]*/i', $login) // ok
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 19h54   #10
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
A part le dièse, quel caractère pourrait poser problème ?
__________________
Consultant idéaliste.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 20h00   #11
Membre Expert
 
Avatar de trattos
 
Inscription : juillet 2003
Messages : 1 005
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 005
Points : 1 023
Points : 1 023
Citation:
Envoyé par macbook
A part le dièse, quel caractère pourrait poser problème ?
Les espaces, les quotes, les doubles quotes, ...
trattos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 20h04   #12
Membre émérite
 
Avatar de macbook
 
Inscription : février 2006
Messages : 840
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 840
Points : 924
Points : 924
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.
macbook est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 20h36   #13
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
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
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 21h00   #14
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
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 :
echo htmlspecialchars($nickname, ENT_QUOTES) ;
À l'écran : <strong>
Dans la source : &lt;strong&gt;
=> Pas de problème
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 21h20   #15
Membre chevronné
 
Avatar de Death83
 
Inscription : mars 2005
Messages : 1 667
Détails du profil
Informations forums :
Inscription : mars 2005
Messages : 1 667
Points : 746
Points : 746
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
Death83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/03/2006, 22h00   #16
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
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.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 00h17   #17
Expert Confirmé
 
Avatar de Séb.
 
Inscription : mars 2005
Messages : 2 823
Détails du profil
Informations personnelles :
Âge : 34
Localisation : France

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

Informations forums :
Inscription : mars 2005
Messages : 2 823
Points : 3 454
Points : 3 454
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
Séb. est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 00h53   #18
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Okay, je retire ce que j'ai dit plus haut.
Je ne suis pas un vicieux moi, je ne pense jamais à ces trucs-là...
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 10h48   #19
Membre éclairé
 
Avatar de XtofRoland
 
Inscription : août 2005
Messages : 361
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 361
Points : 340
Points : 340
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!!!
XtofRoland est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/03/2006, 10h56   #20
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Non, tu n'enregistres pas le htmlspecialchars(), tu l'affiches.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h30.


 
 
 
 
Partenaires

Hébergement Web