Pourquoi eviter les caractères spéciaux ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Pourquoi eviter les caractères spéciaux ?

par Invité » 24 avr. 2007, 20:17

laisser les caractères speciaux permet d'utiliser un login du style:

moi');delete c:;

( bon j'exagère bien la)

le programme (ecrit par un newbe)
pourrait lire:

login('moi');delete c:; ');

normalement les fonctions usuelles du php (addslasces,...) permettent d'eviter cela et il vaut toujours mieux utiliser des caractères spéciaux pour son mot de passe.

par Invité » 17 févr. 2007, 16:51

Pour moi, quand j'entends "sql injection", je pense à "mysql_real_escape_string".

Ca te protège les caractères spéciaux alors le mechant peut très bien s'appeller 'DELETE FROM user' sans problème

par Ryle » 16 févr. 2007, 16:40

bah même sans limiter le nombre de caractères... Pour faire de l'injection, il faut que l'utilisateur puisse écrire dans la requête pour la modifier.

Si on ne le laisse renseigner qu'une valeur à la fois et qu'on l'empêche de fermer la chaine qui l'entoure (suffit de protéger les apostrophes pour qu'elles soient interprétées comme caractère et non comme une fin de chaine - chose qui se fait automatiquement avec magic quotes ou manuellement avec un addslashes()), je ne vois pas où est le risque....

par Brice83 » 16 févr. 2007, 16:01

Je suis d'accord avec Ryle !

Interdire les caractère spéciaux dans les pseudo peut aussi être une question de lisibilité !

Exemple,vous avez un classement et des petit plaisantins s'éclate en mettant un pseudo style :

-('è_çàéù;,:!^$*=)

je préfère encore voir ' jhkdjshguiqy '

Puis, en ce qui concerne le mot de passe, pour faire une injection SQL, il faut un minimum de caractère, hors, il suffit de limité le nombre de caractère pour le mot de passe, exemple : 15 caractère max !

un problème reste quand même présent : le mail du membre ! En effet,on ne peut pas trop limiter le nombre de caractère car y'en a qui ont des adresses aussi longue qu'une page de ce forum..... !

par Ryle » 16 févr. 2007, 15:24

Tout dépend de où et tout dépends de quels caractères... typiquement, dans une url, seuls les caractères spéciaux "-" et "_" devraient être utilisés dans les noms de fichiers, les espace et accents sont déconseillés car selon le navigateur, serveur et le système, il peut ne pas retrouver systématiquement les fichiers correspondant.

Dans un login, je comprend que l'on puisse éventuellement interdire les espaces pour éviter d'avoir une chaine de ceux-ci. En revanche interdire les caractères spéciaux dans un mot de passe me parait ridicule. C'est se priver d'une garantie supplémentaire de sécurité. (On préconise en général de choisir un mot de passe comportant - 3 parmis ces 4 - une minuscule, une majuscule, un nombre et un caractère spécial)

Quant à l'injection sql, cela provient selon moi d'un mauvais contrôle des données transmises par l'utilisateur (ne jamais faire confiance aux utilisateurs et toujours contrôler les données que l'on ne maitrise pas) plutôt qu'un problème d'autoriser ou non les caractères spéciaux....

par epso » 16 févr. 2007, 14:13

Oui, c'est une question de sécurité, laisser les caractères spéciaux permet de faire des injections SQL, qui te permet de craquer les login et rentrer sans en avoir, aprés, je connais pas les détails :)

Pourquoi eviter les caractères spéciaux ?

par Invité » 16 févr. 2007, 14:11

Bonjour,

je vois souvent dans divers scripts php (espace membres) la fonction qui interdit l'utilisation de caractères spéciaux lors de l'inscription (pseudo, mot de passe.....) !

Mais pourquoi, a quoi sa sert exactement ? sécurité ?

merci !