[RESOLU] caractères spéciaux et openssl_random_pseudo_bytes

Eléphant du PHP | 250 Messages

22 févr. 2017, 18:01

Bonjour,
Pour créer un token, j'utilise la fonction openssl_random_pseudo_bytes; or dans les résultats se trouvent des caractères qui (parfois) rendent impossible la récupération du token complet.
Par exemple: yhØzX8 t [Y6_oPJbA] devient yhØzX8 t
Mes questions sont les suivantes:
1) comment éviter l'introduction de certains éléments (typiquement [ et ] ) sachant que je récupère ce token via un lien, donc en _GET, soit un tableau...
2) quel(s) jeu(x) de caractères est/sont utilisé(s) par cette fonction? (désolé, mais même notre ami google ne me trouve pas d'infos là dessus...ou je n'ai pas su chercher; enfin, bref, toute info est la bienvenue)
D'avance merci pour votre aide, vos conseils ou avis.
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

22 févr. 2017, 20:56

1) comment éviter l'introduction de certains éléments (typiquement [ et ] ) sachant que je récupère ce token via un lien, donc en _GET, soit un tableau...
Si tu veux juste un token et que ce que tu souhaites à protéger avec ce token n'a pas besoin d'être sécurisé comme la NSA, alors regarde du côté de la fonction uniqid(), quitte à lui donner un coup de sha1 avec un sel pour augmenter le niveau de sécu et avoir un token avec uniquement des caractères a-z0-9
2) quel(s) jeu(x) de caractères est/sont utilisé(s) par cette fonction? (désolé, mais même notre ami google ne me trouve pas d'infos là dessus...ou je n'ai pas su chercher; enfin, bref, toute info est la bienvenue)
Magie de l'opensource, on peut voir comment la fonction est définie dans la source de PHP :
https://github.com/php/php-src/blob/efe ... sl.c#L6547

Quoiqu'il en soit il n'y a pas de jeu de caractère particulier puisqu'il s'agit juste d'une chaine d'octets aléatoires. Donc ça peut tomber sur n'importe quoi comme caractère, même des non-imprimables.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphant du PHP | 250 Messages

23 févr. 2017, 06:53

Merci @rthur pour le conseil et le lien.
Je vais simplifier effectivement et éviter des caractères "problématiques".
Si je puis me permettre, aux vues de l'actualité des dernières années, c'est plus pour protéger de la NSA que comme elle :lol:
Quoi qu'il en soit, merci encore.
"L'histoire, à l'image de toutes choses dans l'univers, semble avoir comme unique règle le côté ondulatoire."