C'est vrai que moi aussi ça m'aurait aider. Cependant, en essayant
l'url file:///etc/passwd dans curl_init, même en configurant l'option
CURLOPT_NOBODY à true le contenu du fichier est affiché :-D
[...] l'exclusion d'hôtes sensibles
afin d'éviter de détourner la fonctionnalité pour sonder le voisinage
réseau
, etc. Tiens, si ça ce trouve, en utilisant la fonctionnalité
telnet, on peut éventuellement utiliser ça pour faire du spam :-D (oui,
c'est une obsession).
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
C'est vrai que moi aussi ça m'aurait aider. Cependant, en essayant
l'url file:///etc/passwd dans curl_init, même en configurant l'option
CURLOPT_NOBODY à true le contenu du fichier est affiché :-D
[...] l'exclusion d'hôtes sensibles
afin d'éviter de détourner la fonctionnalité pour sonder le voisinage
réseau
, etc. Tiens, si ça ce trouve, en utilisant la fonctionnalité
telnet, on peut éventuellement utiliser ça pour faire du spam :-D (oui,
c'est une obsession).
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
C'est vrai que moi aussi ça m'aurait aider. Cependant, en essayant
l'url file:///etc/passwd dans curl_init, même en configurant l'option
CURLOPT_NOBODY à true le contenu du fichier est affiché :-D
[...] l'exclusion d'hôtes sensibles
afin d'éviter de détourner la fonctionnalité pour sonder le voisinage
réseau
, etc. Tiens, si ça ce trouve, en utilisant la fonctionnalité
telnet, on peut éventuellement utiliser ça pour faire du spam :-D (oui,
c'est une obsession).
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Même si cette URL n'est utilisée que pour une requête HEAD, et que la
seule information utile qu'on en retient est un éventuel code d'erreur ?
Je ne vois pas quel problème de sécurité cela pourrait poser pour
l'appelant : il y a *beaucoup* moins de risques que pour un simple
internaute cliquant sur un lien avec un navigateur qui ferait un GET au
lieu d'un HEAD et qui, en outre, interpréterait le JavaScript.
Et même pour l'appelé : s'il n'implémente pas d'effet de bord aux
requêtes HEAD, il ne risque pas grand chose -- et inversement s'il
reformate son disque dur en réponse à un HEAD, c'est bien fait pour sa
pomme !
ou un client HTTP « paranoïaque » dans un autre language :
http://search.cpan.org/~bradfitz/LWPx-ParanoidAgent-1.03/lib/LWPx/ParanoidAgent.pm
(avec quelques explications sur les pièges évités).
Je n'ai pas bien compris ce que ça fait (il faut dire que je ne suis pas
allé voir ce qu'était LWP::UserAgent dont il dérive).
Et bien sûr là on ne parle même pas d'éventuelles failles dans le
client HTTP en lui-même juste de failles découlant du fait d'accepter
de l'extérieur une information réutilisée telle quelle.
Oui, bien sûr. Mais dans ce cas, quel genre de contrôle ferais-tu sur
l'URL qui pourrait minimiser les risques lors de la connexion par CURL ?
Même si cette URL n'est utilisée que pour une requête HEAD, et que la
seule information utile qu'on en retient est un éventuel code d'erreur ?
Je ne vois pas quel problème de sécurité cela pourrait poser pour
l'appelant : il y a *beaucoup* moins de risques que pour un simple
internaute cliquant sur un lien avec un navigateur qui ferait un GET au
lieu d'un HEAD et qui, en outre, interpréterait le JavaScript.
Et même pour l'appelé : s'il n'implémente pas d'effet de bord aux
requêtes HEAD, il ne risque pas grand chose -- et inversement s'il
reformate son disque dur en réponse à un HEAD, c'est bien fait pour sa
pomme !
ou un client HTTP « paranoïaque » dans un autre language :
http://search.cpan.org/~bradfitz/LWPx-ParanoidAgent-1.03/lib/LWPx/ParanoidAgent.pm
(avec quelques explications sur les pièges évités).
Je n'ai pas bien compris ce que ça fait (il faut dire que je ne suis pas
allé voir ce qu'était LWP::UserAgent dont il dérive).
Et bien sûr là on ne parle même pas d'éventuelles failles dans le
client HTTP en lui-même juste de failles découlant du fait d'accepter
de l'extérieur une information réutilisée telle quelle.
Oui, bien sûr. Mais dans ce cas, quel genre de contrôle ferais-tu sur
l'URL qui pourrait minimiser les risques lors de la connexion par CURL ?
Même si cette URL n'est utilisée que pour une requête HEAD, et que la
seule information utile qu'on en retient est un éventuel code d'erreur ?
Je ne vois pas quel problème de sécurité cela pourrait poser pour
l'appelant : il y a *beaucoup* moins de risques que pour un simple
internaute cliquant sur un lien avec un navigateur qui ferait un GET au
lieu d'un HEAD et qui, en outre, interpréterait le JavaScript.
Et même pour l'appelé : s'il n'implémente pas d'effet de bord aux
requêtes HEAD, il ne risque pas grand chose -- et inversement s'il
reformate son disque dur en réponse à un HEAD, c'est bien fait pour sa
pomme !
ou un client HTTP « paranoïaque » dans un autre language :
http://search.cpan.org/~bradfitz/LWPx-ParanoidAgent-1.03/lib/LWPx/ParanoidAgent.pm
(avec quelques explications sur les pièges évités).
Je n'ai pas bien compris ce que ça fait (il faut dire que je ne suis pas
allé voir ce qu'était LWP::UserAgent dont il dérive).
Et bien sûr là on ne parle même pas d'éventuelles failles dans le
client HTTP en lui-même juste de failles découlant du fait d'accepter
de l'extérieur une information réutilisée telle quelle.
Oui, bien sûr. Mais dans ce cas, quel genre de contrôle ferais-tu sur
l'URL qui pourrait minimiser les risques lors de la connexion par CURL ?
Le but est de prévenir la saisie d'adresses de sites farfelues ou
erronées.
Le contrôle de l'URL s'effectue non
seulement à l'inscription, mais à chaque fois que la personne modifie
quelque chose dans ses coordonnées.
Si je peux avoir un message d'erreur
plus précis que « URL erronée », ce sera pas plus mal (:
Le but est de prévenir la saisie d'adresses de sites farfelues ou
erronées.
Le contrôle de l'URL s'effectue non
seulement à l'inscription, mais à chaque fois que la personne modifie
quelque chose dans ses coordonnées.
Si je peux avoir un message d'erreur
plus précis que « URL erronée », ce sera pas plus mal (:
Le but est de prévenir la saisie d'adresses de sites farfelues ou
erronées.
Le contrôle de l'URL s'effectue non
seulement à l'inscription, mais à chaque fois que la personne modifie
quelque chose dans ses coordonnées.
Si je peux avoir un message d'erreur
plus précis que « URL erronée », ce sera pas plus mal (:
Je veux bien manger ma barbe si l'url html://file:///etc/passwd ouvre
quoi que ce soit en local...
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
Cf. supra. Pas besoin de le vérifier : on l'impose.
Je veux bien manger ma barbe si l'url html://file:///etc/passwd ouvre
quoi que ce soit en local...
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
Cf. supra. Pas besoin de le vérifier : on l'impose.
Je veux bien manger ma barbe si l'url html://file:///etc/passwd ouvre
quoi que ce soit en local...
Même réponse que pour file : c'est impossible puisque c'est Pascale qui
rajoute http:// au début.
Vérifier que c'est une URL désignant une ressource HTTP est un bon
début en fait.
Cf. supra. Pas besoin de le vérifier : on l'impose.
[...]
Voici quelques exemples de choses [...] auxquelles
il faut penser, c'est à dire des URLs ennuyeuses :
[ liste d'exemples ]
il faut probablement veiller à ne faire que du HTTP/HTTPS
L'appelant devient la source d'un certain trafic (une requête HTTP), comme
délégataire du client qui a soumis l'URL. Il est alors *responsable* de ce
trafic, comme l'est un proxy HTTP. [...]
Maintenant s'il y en a réellement besoin, il est fort probable qu'il n'y
en a pas besoin de manière synchrone. Je prendrais donc l'URL que me donne
l'utilisateur et (après un éventuel simple test syntaxique), la stocke
quelque part. Après un processus asynchrone indépendant traite toutes les
URLs en attente.
Ainsi :
- [ deux bonnes raisons pour le faire ]
À noter que personnellement, pour moi, allow_url_fopen est mieux à Off,
donc pas de fopen('http://...') comme évoqué au début.
(mélanger les ressources « locales » comme les fichiers sur le disque dur
du serveur et les ressources « distantes » accessibles par HTTP/FTP/etc.
en supprimant toute distinction entre les deux me paraît être une
mauvaise chose, en tout cas du point de vue de la sécurité ; [...]
[...]
Voici quelques exemples de choses [...] auxquelles
il faut penser, c'est à dire des URLs ennuyeuses :
[ liste d'exemples ]
il faut probablement veiller à ne faire que du HTTP/HTTPS
L'appelant devient la source d'un certain trafic (une requête HTTP), comme
délégataire du client qui a soumis l'URL. Il est alors *responsable* de ce
trafic, comme l'est un proxy HTTP. [...]
Maintenant s'il y en a réellement besoin, il est fort probable qu'il n'y
en a pas besoin de manière synchrone. Je prendrais donc l'URL que me donne
l'utilisateur et (après un éventuel simple test syntaxique), la stocke
quelque part. Après un processus asynchrone indépendant traite toutes les
URLs en attente.
Ainsi :
- [ deux bonnes raisons pour le faire ]
À noter que personnellement, pour moi, allow_url_fopen est mieux à Off,
donc pas de fopen('http://...') comme évoqué au début.
(mélanger les ressources « locales » comme les fichiers sur le disque dur
du serveur et les ressources « distantes » accessibles par HTTP/FTP/etc.
en supprimant toute distinction entre les deux me paraît être une
mauvaise chose, en tout cas du point de vue de la sécurité ; [...]
[...]
Voici quelques exemples de choses [...] auxquelles
il faut penser, c'est à dire des URLs ennuyeuses :
[ liste d'exemples ]
il faut probablement veiller à ne faire que du HTTP/HTTPS
L'appelant devient la source d'un certain trafic (une requête HTTP), comme
délégataire du client qui a soumis l'URL. Il est alors *responsable* de ce
trafic, comme l'est un proxy HTTP. [...]
Maintenant s'il y en a réellement besoin, il est fort probable qu'il n'y
en a pas besoin de manière synchrone. Je prendrais donc l'URL que me donne
l'utilisateur et (après un éventuel simple test syntaxique), la stocke
quelque part. Après un processus asynchrone indépendant traite toutes les
URLs en attente.
Ainsi :
- [ deux bonnes raisons pour le faire ]
À noter que personnellement, pour moi, allow_url_fopen est mieux à Off,
donc pas de fopen('http://...') comme évoqué au début.
(mélanger les ressources « locales » comme les fichiers sur le disque dur
du serveur et les ressources « distantes » accessibles par HTTP/FTP/etc.
en supprimant toute distinction entre les deux me paraît être une
mauvaise chose, en tout cas du point de vue de la sécurité ; [...]
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire. Et sinon, peut-être une requête DNS, non ? Tu n'as pas parlé de
cette éventualité, alors que justement pour le contrôle des adresses de
courriel c'est toi qui conseillais d'en faire une tandis que moi je
l'estimais inutile...
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire. Et sinon, peut-être une requête DNS, non ? Tu n'as pas parlé de
cette éventualité, alors que justement pour le contrôle des adresses de
courriel c'est toi qui conseillais d'en faire une tandis que moi je
l'estimais inutile...
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire. Et sinon, peut-être une requête DNS, non ? Tu n'as pas parlé de
cette éventualité, alors que justement pour le contrôle des adresses de
courriel c'est toi qui conseillais d'en faire une tandis que moi je
l'estimais inutile...
- quand on demande une adresse email, en général on va réellement en avoir
besoin c'est à dire envoyer un email dans le futur, que ce soit un «
Bienvenu » au début, une newsletter, un rappel de mot de passe, etc.
Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle particulier
dans le service fourni, au mieux on met un lien en face du nom de
l'utilisateur et voila. [...]
Donc, compte tenu de cette différence, le test DNS ne me paraît pas
primordial ici. Mais il peut en tout cas être fait bien plus facilement et
avec moins de risques (mais pas aucun, a CNAME b + b CNAME a c'est
embêtant) qu'une requête HTTP.
- quand on demande une adresse email, en général on va réellement en avoir
besoin c'est à dire envoyer un email dans le futur, que ce soit un «
Bienvenu » au début, une newsletter, un rappel de mot de passe, etc.
Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle particulier
dans le service fourni, au mieux on met un lien en face du nom de
l'utilisateur et voila. [...]
Donc, compte tenu de cette différence, le test DNS ne me paraît pas
primordial ici. Mais il peut en tout cas être fait bien plus facilement et
avec moins de risques (mais pas aucun, a CNAME b + b CNAME a c'est
embêtant) qu'une requête HTTP.
- quand on demande une adresse email, en général on va réellement en avoir
besoin c'est à dire envoyer un email dans le futur, que ce soit un «
Bienvenu » au début, une newsletter, un rappel de mot de passe, etc.
Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle particulier
dans le service fourni, au mieux on met un lien en face du nom de
l'utilisateur et voila. [...]
Donc, compte tenu de cette différence, le test DNS ne me paraît pas
primordial ici. Mais il peut en tout cas être fait bien plus facilement et
avec moins de risques (mais pas aucun, a CNAME b + b CNAME a c'est
embêtant) qu'une requête HTTP.
- quand on demande une adresse email, en général on va réellement en
avoir besoin c'est à dire envoyer un email dans le futur, que ce soit
un « Bienvenu » au début, une newsletter, un rappel de mot de passe,
etc. Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle
particulier dans le service fourni, au mieux on met un lien en face du
nom de l'utilisateur et voila. Donc si l'URL ne pointe pas vers une
ressource accessible (le test DNS permettant d'éliminer certains cas
triviaux de ressources non accessibles), cela ne dégrade pas
significativement le service proposé, et cela n'embête en fait que
l'internaute qui va cliquer sur le lien
- quand on demande une adresse email, en général on va réellement en
avoir besoin c'est à dire envoyer un email dans le futur, que ce soit
un « Bienvenu » au début, une newsletter, un rappel de mot de passe,
etc. Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle
particulier dans le service fourni, au mieux on met un lien en face du
nom de l'utilisateur et voila. Donc si l'URL ne pointe pas vers une
ressource accessible (le test DNS permettant d'éliminer certains cas
triviaux de ressources non accessibles), cela ne dégrade pas
significativement le service proposé, et cela n'embête en fait que
l'internaute qui va cliquer sur le lien
- quand on demande une adresse email, en général on va réellement en
avoir besoin c'est à dire envoyer un email dans le futur, que ce soit
un « Bienvenu » au début, une newsletter, un rappel de mot de passe,
etc. Bref c'est une ressource « chaude ».
- dans le cas exposé, si j'ai bien compris, l'URL du site n'est qu'un
élément de la fiche d'identification, cela ne joue pas de rôle
particulier dans le service fourni, au mieux on met un lien en face du
nom de l'utilisateur et voila. Donc si l'URL ne pointe pas vers une
ressource accessible (le test DNS permettant d'éliminer certains cas
triviaux de ressources non accessibles), cela ne dégrade pas
significativement le service proposé, et cela n'embête en fait que
l'internaute qui va cliquer sur le lien
Voire que du HTTP. Le besoin de Pascale est de valider une page perso,
pas de se connecter à un service bancaire.
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire.
Oui, c'est juste. Même pour un simple HEAD il pourrait se le voir
reprocher.
Voire que du HTTP. Le besoin de Pascale est de valider une page perso,
pas de se connecter à un service bancaire.
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire.
Oui, c'est juste. Même pour un simple HEAD il pourrait se le voir
reprocher.
Voire que du HTTP. Le besoin de Pascale est de valider une page perso,
pas de se connecter à un service bancaire.
Cela dit, comme tu l'expliquais, une simple analyse syntaxique devrait
suffire.
Oui, c'est juste. Même pour un simple HEAD il pourrait se le voir
reprocher.