Une fonction du genre getMimeType(url), sachant que le javascript est dans
un fichier local du client, que l'url pointe un serveur distant, et que le
type mime cherché est celui que renvoie le serveur, est-elle possible et si
oui comment ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
SAM
Le 24/03/12 15:04, François Guillet a écrit :
Bonjour,
Une fonction du genre getMimeType(url), sachant que le javascript est dans un fichier local du client, que l'url pointe un serveur distant, et que le type mime cherché est celui que renvoie le serveur, est-elle possible et si oui comment ?
Je crains que non (je ne sais comment fait l'extension pour Fx : Web Developer )
Encore que ... ici peut-être ? <http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en>
Pour les types mimes on ne peut connaître que ceux pris en charge par le navigateur : navigator.mimeTypes voir : <http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
-- Stéphane Moriaux avec/with iMac-intel
Le 24/03/12 15:04, François Guillet a écrit :
Bonjour,
Une fonction du genre getMimeType(url), sachant que le javascript est dans
un fichier local du client, que l'url pointe un serveur distant, et que le
type mime cherché est celui que renvoie le serveur, est-elle possible et si
oui comment ?
Je crains que non
(je ne sais comment fait l'extension pour Fx : Web Developer )
Encore que ... ici peut-être ?
<http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en>
Pour les types mimes on ne peut connaître que ceux pris en charge par le
navigateur :
navigator.mimeTypes
voir :
<http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
Une fonction du genre getMimeType(url), sachant que le javascript est dans un fichier local du client, que l'url pointe un serveur distant, et que le type mime cherché est celui que renvoie le serveur, est-elle possible et si oui comment ?
Je crains que non (je ne sais comment fait l'extension pour Fx : Web Developer )
Encore que ... ici peut-être ? <http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en>
Pour les types mimes on ne peut connaître que ceux pris en charge par le navigateur : navigator.mimeTypes voir : <http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
-- Stéphane Moriaux avec/with iMac-intel
François Guillet
"SAM" a écrit dans le message de news: 4f6e6426$0$12520$ | Le 24/03/12 15:04, François Guillet a écrit : | > Bonjour, | > | > Une fonction du genre getMimeType(url), sachant que le javascript est dans | > un fichier local du client, que l'url pointe un serveur distant, et que le | > type mime cherché est celui que renvoie le serveur, est-elle possible et si | > oui comment ? | | Je crains que non | (je ne sais comment fait l'extension pour Fx : Web Developer ) | | Encore que ... ici peut-être ? | <http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en> | | | Pour les types mimes on ne peut connaître que ceux pris en charge par le | navigateur : | navigator.mimeTypes | voir : | <http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
J'ai testé le 1er lien, ça marche mais non. Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site puis que je tape dans sa barre d'adresse javascript: + le code indiqué au 1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai appelé d'abord par le navigateur, alors j'ai une "security violation". Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a pas raté :-( ! Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Merci quand même !
"SAM" <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> a écrit dans le message
de news: 4f6e6426$0$12520$ba4acef3@reader.news.orange.fr...
| Le 24/03/12 15:04, François Guillet a écrit :
| > Bonjour,
| >
| > Une fonction du genre getMimeType(url), sachant que le javascript est
dans
| > un fichier local du client, que l'url pointe un serveur distant, et que
le
| > type mime cherché est celui que renvoie le serveur, est-elle possible et
si
| > oui comment ?
|
| Je crains que non
| (je ne sais comment fait l'extension pour Fx : Web Developer )
|
| Encore que ... ici peut-être ?
|
<http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en>
|
|
| Pour les types mimes on ne peut connaître que ceux pris en charge par le
| navigateur :
| navigator.mimeTypes
| voir :
| <http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
J'ai testé le 1er lien, ça marche mais non.
Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site
puis que je tape dans sa barre d'adresse javascript: + le code indiqué au
1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai
appelé d'abord par le navigateur, alors j'ai une "security violation".
Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a
pas raté :-( !
Je ne comprends pas que la norme interdise des opérations de cross-domaine
aussi élémentaires et sans incidence sur la sécurité.
"SAM" a écrit dans le message de news: 4f6e6426$0$12520$ | Le 24/03/12 15:04, François Guillet a écrit : | > Bonjour, | > | > Une fonction du genre getMimeType(url), sachant que le javascript est dans | > un fichier local du client, que l'url pointe un serveur distant, et que le | > type mime cherché est celui que renvoie le serveur, est-elle possible et si | > oui comment ? | | Je crains que non | (je ne sais comment fait l'extension pour Fx : Web Developer ) | | Encore que ... ici peut-être ? | <http://www.ashorlivs.fr/javascript-jquery/article/recuperer-les-headers-html-en> | | | Pour les types mimes on ne peut connaître que ceux pris en charge par le | navigateur : | navigator.mimeTypes | voir : | <http://fr.selfhtml.org/javascript/objets/mimetypes.htm#type>
J'ai testé le 1er lien, ça marche mais non. Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site puis que je tape dans sa barre d'adresse javascript: + le code indiqué au 1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai appelé d'abord par le navigateur, alors j'ai une "security violation". Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a pas raté :-( ! Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Merci quand même !
SAM
Le 26/03/12 14:23, François Guillet a écrit :
Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Qui peut le + peut le - ;-)
Je ne sais comment les programmeurs font pour que les logiciels refusent le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas qui pourraient être "autorisables" ! D'autant que ... autorisable jusque quand ? qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
-- Stéphane Moriaux avec/with iMac-intel
Le 26/03/12 14:23, François Guillet a écrit :
Je ne comprends pas que la norme interdise des opérations de cross-domaine
aussi élémentaires et sans incidence sur la sécurité.
Qui peut le + peut le - ;-)
Je ne sais comment les programmeurs font pour que les logiciels refusent
le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas
qui pourraient être "autorisables" !
D'autant que ... autorisable jusque quand ?
qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Qui peut le + peut le - ;-)
Je ne sais comment les programmeurs font pour que les logiciels refusent le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas qui pourraient être "autorisables" ! D'autant que ... autorisable jusque quand ? qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
-- Stéphane Moriaux avec/with iMac-intel
Clément
Le 26/03/2012 14:23, François Guillet a écrit :
J'ai testé le 1er lien, ça marche mais non. Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site puis que je tape dans sa barre d'adresse javascript: + le code indiqué au 1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai appelé d'abord par le navigateur, alors j'ai une "security violation". Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a pas raté :-( ! Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Merci quand même !
Rien n'empêche de passer par un proxy. Par exemple, depuis votre page, faire un appel ajax vers une page PHP de *votre* domaine (donc pas de x-domains) avec en paramètre l'url à contrôler qui lance un curl vers cette url et retourne le mime-type à javascript. La boucle est bouclée.
Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles en cas d'erreur du curl) :
<?php
$ch = curl_init($_POST['url']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); // on retourne le mime-type echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$_POST['url'] étant l'url demandée évidemment.
Le 26/03/2012 14:23, François Guillet a écrit :
J'ai testé le 1er lien, ça marche mais non.
Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site
puis que je tape dans sa barre d'adresse javascript: + le code indiqué au
1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai
appelé d'abord par le navigateur, alors j'ai une "security violation".
Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a
pas raté :-( !
Je ne comprends pas que la norme interdise des opérations de cross-domaine
aussi élémentaires et sans incidence sur la sécurité.
Merci quand même !
Rien n'empêche de passer par un proxy.
Par exemple, depuis votre page, faire un appel ajax vers une page PHP de
*votre* domaine (donc pas de x-domains) avec en paramètre l'url à
contrôler qui lance un curl vers cette url et retourne le mime-type à
javascript. La boucle est bouclée.
Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de
l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles
en cas d'erreur du curl) :
<?php
$ch = curl_init($_POST['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
// on retourne le mime-type
echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
J'ai testé le 1er lien, ça marche mais non. Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site puis que je tape dans sa barre d'adresse javascript: + le code indiqué au 1er lien, j'obtiens le bon résultat :
Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai appelé d'abord par le navigateur, alors j'ai une "security violation". Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a pas raté :-( ! Je ne comprends pas que la norme interdise des opérations de cross-domaine aussi élémentaires et sans incidence sur la sécurité.
Merci quand même !
Rien n'empêche de passer par un proxy. Par exemple, depuis votre page, faire un appel ajax vers une page PHP de *votre* domaine (donc pas de x-domains) avec en paramètre l'url à contrôler qui lance un curl vers cette url et retourne le mime-type à javascript. La boucle est bouclée.
Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles en cas d'erreur du curl) :
<?php
$ch = curl_init($_POST['url']); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_exec($ch); // on retourne le mime-type echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
$_POST['url'] étant l'url demandée évidemment.
François Guillet
"Clément" a écrit dans le message de news: 4f71f01f$0$1682$ | Le 26/03/2012 14:23, François Guillet a écrit : | > | > J'ai testé le 1er lien, ça marche mais non. | > Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site | > puis que je tape dans sa barre d'adresse javascript: + le code indiqué au | > 1er lien, j'obtiens le bon résultat : | > | > date: mon, 26 mar 2012 12:12:21 gmt | > expires: -1 | > cache-control: private, max-age=0 | > content-type: text/html; charset=utf-8 | > content-encoding: gzip | > server: gws | > content-length: 17632 | > x-xss-protection: 1; mode=block | > x-frame-options: sameorigin | > | > Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai | > appelé d'abord par le navigateur, alors j'ai une "security violation". | > Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a | > pas raté :-( ! | > Je ne comprends pas que la norme interdise des opérations de cross-domaine | > aussi élémentaires et sans incidence sur la sécurité. | > | > Merci quand même ! | > | > | > | | Rien n'empêche de passer par un proxy. | Par exemple, depuis votre page, faire un appel ajax vers une page PHP de | *votre* domaine (donc pas de x-domains) avec en paramètre l'url à | contrôler qui lance un curl vers cette url et retourne le mime-type à | javascript. La boucle est bouclée. | | Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de | l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles | en cas d'erreur du curl) : | | <?php | | $ch = curl_init($_POST['url']); | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | curl_exec($ch); | // on retourne le mime-type | echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE); | | $_POST['url'] étant l'url demandée évidemment.
J'avais vainement essayé il y a deux ans avec une page PHP que j'avais chez Free : il s'agit de tester des urls de streaming radio, mais Free me bloque les url avec port différent de 80, ce qui est très souvent le cas des radios Internet. Mes premières tentatives datent d'il y a 2 ans. Il faudra peut-être que je réessaye, voir si Free n'a pas changé ses conditions. J'essaierai avec ton script, merci. Sinon en VB ça doit être possible mais bon, ça s'intègre mal avec le reste du projet.
"Clément" <test@example.net> a écrit dans le message de news:
4f71f01f$0$1682$426a74cc@news.free.fr...
| Le 26/03/2012 14:23, François Guillet a écrit :
| >
| > J'ai testé le 1er lien, ça marche mais non.
| > Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un
site
| > puis que je tape dans sa barre d'adresse javascript: + le code indiqué
au
| > 1er lien, j'obtiens le bon résultat :
| >
| > date: mon, 26 mar 2012 12:12:21 gmt
| > expires: -1
| > cache-control: private, max-age=0
| > content-type: text/html; charset=utf-8
| > content-encoding: gzip
| > server: gws
| > content-length: 17632
| > x-xss-protection: 1; mode=block
| > x-frame-options: sameorigin
| >
| > Mais si j'indique pour le XMLHttpRequest() un autre site que celui que
j'ai
| > appelé d'abord par le navigateur, alors j'ai une "security violation".
| > Je me doutais que j'allais me confronter à des pbs de cross-domains, ça
n'a
| > pas raté :-( !
| > Je ne comprends pas que la norme interdise des opérations de
cross-domaine
| > aussi élémentaires et sans incidence sur la sécurité.
| >
| > Merci quand même !
| >
| >
| >
|
| Rien n'empêche de passer par un proxy.
| Par exemple, depuis votre page, faire un appel ajax vers une page PHP de
| *votre* domaine (donc pas de x-domains) avec en paramètre l'url à
| contrôler qui lance un curl vers cette url et retourne le mime-type à
| javascript. La boucle est bouclée.
|
| Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de
| l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles
| en cas d'erreur du curl) :
|
| <?php
|
| $ch = curl_init($_POST['url']);
| curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
| curl_exec($ch);
| // on retourne le mime-type
| echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
|
| $_POST['url'] étant l'url demandée évidemment.
J'avais vainement essayé il y a deux ans avec une page PHP que j'avais chez
Free : il s'agit de tester des urls de streaming radio, mais Free me bloque
les url avec port différent de 80, ce qui est très souvent le cas des radios
Internet. Mes premières tentatives datent d'il y a 2 ans. Il faudra
peut-être que je réessaye, voir si Free n'a pas changé ses conditions.
J'essaierai avec ton script, merci.
Sinon en VB ça doit être possible mais bon, ça s'intègre mal avec le reste
du projet.
"Clément" a écrit dans le message de news: 4f71f01f$0$1682$ | Le 26/03/2012 14:23, François Guillet a écrit : | > | > J'ai testé le 1er lien, ça marche mais non. | > Si j'appelle depuis mon navigateur (en l'occurence Opera) la page d'un site | > puis que je tape dans sa barre d'adresse javascript: + le code indiqué au | > 1er lien, j'obtiens le bon résultat : | > | > date: mon, 26 mar 2012 12:12:21 gmt | > expires: -1 | > cache-control: private, max-age=0 | > content-type: text/html; charset=utf-8 | > content-encoding: gzip | > server: gws | > content-length: 17632 | > x-xss-protection: 1; mode=block | > x-frame-options: sameorigin | > | > Mais si j'indique pour le XMLHttpRequest() un autre site que celui que j'ai | > appelé d'abord par le navigateur, alors j'ai une "security violation". | > Je me doutais que j'allais me confronter à des pbs de cross-domains, ça n'a | > pas raté :-( ! | > Je ne comprends pas que la norme interdise des opérations de cross-domaine | > aussi élémentaires et sans incidence sur la sécurité. | > | > Merci quand même ! | > | > | > | | Rien n'empêche de passer par un proxy. | Par exemple, depuis votre page, faire un appel ajax vers une page PHP de | *votre* domaine (donc pas de x-domains) avec en paramètre l'url à | contrôler qui lance un curl vers cette url et retourne le mime-type à | javascript. La boucle est bouclée. | | Ex de code PHP rapide (il serait meilleur de contrôler l'intégrité de | l'url avant d'envoyer le curl ainsi que d'utiliser json et les contrôles | en cas d'erreur du curl) : | | <?php | | $ch = curl_init($_POST['url']); | curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); | curl_exec($ch); | // on retourne le mime-type | echo curl_getinfo($ch, CURLINFO_CONTENT_TYPE); | | $_POST['url'] étant l'url demandée évidemment.
J'avais vainement essayé il y a deux ans avec une page PHP que j'avais chez Free : il s'agit de tester des urls de streaming radio, mais Free me bloque les url avec port différent de 80, ce qui est très souvent le cas des radios Internet. Mes premières tentatives datent d'il y a 2 ans. Il faudra peut-être que je réessaye, voir si Free n'a pas changé ses conditions. J'essaierai avec ton script, merci. Sinon en VB ça doit être possible mais bon, ça s'intègre mal avec le reste du projet.
François Guillet
"SAM" a écrit dans le message de news: 4f71d0e2$0$12493$ | Le 26/03/12 14:23, François Guillet a écrit : | > Je ne comprends pas que la norme interdise des opérations de cross-domaine | > aussi élémentaires et sans incidence sur la sécurité. | | | Qui peut le + peut le - ;-) | | | Je ne sais comment les programmeurs font pour que les logiciels refusent | le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas | qui pourraient être "autorisables" ! | D'autant que ... autorisable jusque quand ? | qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
En tout cas j'ai déjà tourné le truc dans tous les sens sans rien trouver, et comme des plus avertis et plus motivés que moi ont dû aussi s'y coltiner parce qu'on imagine bien la pléthore d'usages supercool qu'on pourrait avoir en profitant de cette faille, mais qu'on n'a toujours rien sur le web, c'est qu'ils ont dû échouer. J'ai cru voir que c'est possible par un système d'accréditation entre sites, donc il faut avoir la main sur chaque domaine, l'intérêt est limité sauf pour celui qui a plusieurs domaines à faire tourner de concert.
"SAM" <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> a écrit dans le message
de news: 4f71d0e2$0$12493$ba4acef3@reader.news.orange.fr...
| Le 26/03/12 14:23, François Guillet a écrit :
| > Je ne comprends pas que la norme interdise des opérations de
cross-domaine
| > aussi élémentaires et sans incidence sur la sécurité.
|
|
| Qui peut le + peut le - ;-)
|
|
| Je ne sais comment les programmeurs font pour que les logiciels refusent
| le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas
| qui pourraient être "autorisables" !
| D'autant que ... autorisable jusque quand ?
| qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
En tout cas j'ai déjà tourné le truc dans tous les sens sans rien trouver,
et comme des plus avertis et plus motivés que moi ont dû aussi s'y coltiner
parce qu'on imagine bien la pléthore d'usages supercool qu'on pourrait avoir
en profitant de cette faille, mais qu'on n'a toujours rien sur le web, c'est
qu'ils ont dû échouer.
J'ai cru voir que c'est possible par un système d'accréditation entre sites,
donc il faut avoir la main sur chaque domaine, l'intérêt est limité sauf
pour celui qui a plusieurs domaines à faire tourner de concert.
"SAM" a écrit dans le message de news: 4f71d0e2$0$12493$ | Le 26/03/12 14:23, François Guillet a écrit : | > Je ne comprends pas que la norme interdise des opérations de cross-domaine | > aussi élémentaires et sans incidence sur la sécurité. | | | Qui peut le + peut le - ;-) | | | Je ne sais comment les programmeurs font pour que les logiciels refusent | le cross-domain mais ça ne doit pas être coton d'en plus sérier les cas | qui pourraient être "autorisables" ! | D'autant que ... autorisable jusque quand ? | qui garantit qu'un hacker ne va pas profiter de la toute petite brèche ?
En tout cas j'ai déjà tourné le truc dans tous les sens sans rien trouver, et comme des plus avertis et plus motivés que moi ont dû aussi s'y coltiner parce qu'on imagine bien la pléthore d'usages supercool qu'on pourrait avoir en profitant de cette faille, mais qu'on n'a toujours rien sur le web, c'est qu'ils ont dû échouer. J'ai cru voir que c'est possible par un système d'accréditation entre sites, donc il faut avoir la main sur chaque domaine, l'intérêt est limité sauf pour celui qui a plusieurs domaines à faire tourner de concert.