Index du Forum » » Le coin des codeurs

Auteur

permettre certains caractères spéciaux dans le login
freud
113     

  Posté : 06-05-2012 11:14

Re,

J'ai une parade mais à prendre avec précaution, en clair ne pas l'appliquer n'ayant pas encore jaugé les incidences possibles sur certaines fonctions.

L'idée consiste à remplacer avant encodage les caractères spéciaux acceptés par le caractère non accentué correspondant, exemple avec le "e" :


function docookie($setuid, $setuname, $setpass, $setstory num, $setublockon) {

$caract = array('é', 'è', 'ê', 'ë');
$setuname = str_replace($caract, "e", $setuname);
$info = base_64_encode("$setuid:$setuname:".md5($setpass).":$setsto rynum:$setublockon");

...



Ainsi le cookie comporte le login sans accent, et la connexion fonctionne qu'on le saisisse avec ou sans accent.
Ceci étant, le login enregistré dans la BDD et celui du cookie peuvent donc différer, auquel cas si certaines fonctions d'NPDS comparent ces derniers pour une raison ou pour une autre ils ne seront évidemment pas reconnus comme étant identiques. Dès lors ça va coincer.
Il convient donc de localiser les éventuelles fonctions concernées (modération ou que sais-je encore).

Puisque lors de l'inscription la recherche parmi les pseudos existants est insensible à la casse et aux accents ça ne pause pas de problème de sécurité, ainsi on ne pourra avoir un utilisateur qui se nomme "héhé" et un autre "hehe" ou encore "HeHe".



Cet article provient de NPDS

http://www.npds.org/viewtopic.php?topic=25492&forum=5