Discussion:
Definir le charset des information en voye par le client
(trop ancien pour répondre)
Thief13
2007-02-10 17:01:33 UTC
Permalink
Bonjour,

Je galaire, toujours avec mes histoire de charset, j'ai tout passé en
utf8, je me suis débrouillé pour déclarer tout mes pages avec
header('Content-type: text/html; charset=UTF-8');, mais meme avec celà,
il me semble que le navigateur m'envoi les infos en iso sur une machine,
et en utf8 sur une autre, je voulais donc savoir si il était possible de
définir le charset des informations envoyé par l'utilisateur...

Merci d'avance !
John GALLET
2007-02-10 23:19:23 UTC
Permalink
Post by Thief13
header('Content-type: text/html; charset=UTF-8');, mais meme avec celà,
il me semble que le navigateur m'envoi les infos en iso sur une machine,
et en utf8 sur une autre,
Mais pourquoi le navigateur ferait-il ce que tu lui demandes, surtout s'il
n'en est pas capable parce qu'il ne connait pas utf-8 par exemple ? S'il
est gentil et qu'il veut te faire plaisir, peut-être qu'il le fera, mais
ça s'arrête là. Forcer le charset de sortie reste utile pour gêner les
xss, mais à part ça...
Post by Thief13
je voulais donc savoir si il était possible de
définir le charset des informations envoyé par l'utilisateur...
Le jour où on pourra se passer de forcer côté serveur la validité des
informations venant depuis le client, les poules auront des dentiers.

Tu peux/dois lister explicitement la liste des caractères autorisés, afin
qu'aucun caractère non utile ne vienne te perturber, mais rien ni personne
ne pourra empêcher la terre entière de te balancer n'importe quoi, dans
n'importe quel charset.

a++;
JG
Thief13
2007-02-11 23:24:35 UTC
Permalink
Post by John GALLET
Post by Thief13
header('Content-type: text/html; charset=UTF-8');, mais meme avec celà,
il me semble que le navigateur m'envoi les infos en iso sur une machine,
et en utf8 sur une autre,
Mais pourquoi le navigateur ferait-il ce que tu lui demandes, surtout s'il
n'en est pas capable parce qu'il ne connait pas utf-8 par exemple ? S'il
est gentil et qu'il veut te faire plaisir, peut-être qu'il le fera, mais
ça s'arrête là. Forcer le charset de sortie reste utile pour gêner les
xss, mais à part ça...
Post by Thief13
je voulais donc savoir si il était possible de
définir le charset des informations envoyé par l'utilisateur...
Le jour où on pourra se passer de forcer côté serveur la validité des
informations venant depuis le client, les poules auront des dentiers.
Tu peux/dois lister explicitement la liste des caractères autorisés, afin
qu'aucun caractère non utile ne vienne te perturber, mais rien ni personne
ne pourra empêcher la terre entière de te balancer n'importe quoi, dans
n'importe quel charset.
a++;
JG
Moi, mon probleme, ce n'est pas de focer un charset en particulier,
mais de déterminer le charset des cahine de caractère que m'envoi le
navigateur. je veux savoir si il m'envoi du l'utf8 ou de l'iso, pour
pouvoir traiter les caractères correctement. est ce possible ?
Olivier Miakinen
2007-02-10 23:32:03 UTC
Permalink
Post by Thief13
Je galaire, toujours avec mes histoire de charset, j'ai tout passé en
utf8, je me suis débrouillé pour déclarer tout mes pages avec
header('Content-type: text/html; charset=UTF-8');, mais meme avec celà,
il me semble que le navigateur m'envoi les infos en iso sur une machine,
^^^^^^^^^^^^
Pour s'en assurer, il serait utile d'afficher les chaînes octet par
octet, par exemple en bouclant avec la fonction ord().
Post by Thief13
et en utf8 sur une autre, je voulais donc savoir si il était possible de
définir le charset des informations envoyé par l'utilisateur...
Si le navigateur te répond en Latin-1 quand tu lui causes en UTF-8, je
ne vois pas bien ce qu'on peut faire. Il y aurait bien la bidouille
d'envoyer une valeur fixe dans un champ hidden pour tester le résultat,
mais bon, c'est du domaine de la *grosse* bidouille.
Thief13
2007-02-11 23:24:35 UTC
Permalink
Post by Olivier Miakinen
Si le navigateur te répond en Latin-1 quand tu lui causes en UTF-8, je
ne vois pas bien ce qu'on peut faire. Il y aurait bien la bidouille
d'envoyer une valeur fixe dans un champ hidden pour tester le résultat,
mais bon, c'est du domaine de la *grosse* bidouille.
Mais c'est la seul manière de savoir dans quel charset le navigateur me
cause ?
Olivier Miakinen
2007-02-12 00:09:39 UTC
Permalink
Post by Thief13
Post by Olivier Miakinen
Si le navigateur te répond en Latin-1 quand tu lui causes en UTF-8, je
ne vois pas bien ce qu'on peut faire. Il y aurait bien la bidouille
d'envoyer une valeur fixe dans un champ hidden pour tester le résultat,
mais bon, c'est du domaine de la *grosse* bidouille.
Mais c'est la seul manière de savoir dans quel charset le navigateur me
cause ?
Je ne sais pas si c'est la seule, mais c'en est une.

Regarde à tout hasard si tu trouves ton bonheur là-dedans :
http://64.233.183.104/search?q=cache:1zHxgxRYzQsJ:ppewww.physics.gla.ac.uk/~flavell/charset/form-i18n.html
Thief13
2007-02-12 07:50:13 UTC
Permalink
Post by Olivier Miakinen
Post by Thief13
Post by Olivier Miakinen
Si le navigateur te répond en Latin-1 quand tu lui causes en UTF-8, je
ne vois pas bien ce qu'on peut faire. Il y aurait bien la bidouille
d'envoyer une valeur fixe dans un champ hidden pour tester le résultat,
mais bon, c'est du domaine de la *grosse* bidouille.
Mais c'est la seul manière de savoir dans quel charset le navigateur me
cause ?
Je ne sais pas si c'est la seule, mais c'en est une.
http://64.233.183.104/search?q=cache:1zHxgxRYzQsJ:ppewww.physics.gla.ac.uk/~flavell/charset/form-i18n.html
Arf, c'estr de l'anglais trop violent, j'y arriverais pas... merci
quand même.

Continuer la lecture sur narkive:
Loading...