Discussion:
fopen et URL
(trop ancien pour répondre)
Pascale
2011-11-21 13:06:27 UTC
Permalink
Bonjour,

J'ai un souci qui arrive une fois tous les 36 du mois, et il faut croire
qu'aujourd'hui c'est le 36. J'ai un bout de programme destiné à tester la
validité d'une URL :

$file1 = fopen($site1,'r');
if ($file1)
{$_SESSION['site1']=$site1;}
else
{
echo '<p class="avert">L\'adresse de site '.$site1.' renvoie un
message d\'erreur !</p>';
$err='1';
}

Ça marche bien et depuis des années, sauf qu'aujourd'hui, l'URL
http://www.afccc69.fr/ renvoie une erreur apparemment sans raison. C'est
quoi, cette diablerie ?
--
Pascale
http://www.la-grille-verte.net
Pascale
2011-11-21 13:13:17 UTC
Permalink
J'ajoute que allow_url_fopen est bien entendu sur On.
--
Pascale
http://www.la-grille-verte.net
Bruno Baguette
2011-11-21 15:58:48 UTC
Permalink
Post by Pascale
Bonjour,
J'ai un souci qui arrive une fois tous les 36 du mois, et il faut
croire qu'aujourd'hui c'est le 36. J'ai un bout de programme destiné
$file1 = fopen($site1,'r'); if ($file1) {$_SESSION['site1']=$site1;}
else { echo '<p class="avert">L\'adresse de site '.$site1.' renvoie
un message d\'erreur !</p>'; $err='1'; }
Ça marche bien et depuis des années, sauf qu'aujourd'hui, l'URL
http://www.afccc69.fr/ renvoie une erreur apparemment sans raison.
C'est quoi, cette diablerie ?
Cela ressemble furieusement à un filtrage sur base du user-agent :

***@odin:~$ wget --user-agent="" http://www.afccc69.fr/
--2011-11-21 16:46:06-- http://www.afccc69.fr/
Résolution de www.afccc69.fr... 195.20.248.198
Connexion vers www.afccc69.fr|195.20.248.198|:80... connecté.
requête HTTP transmise, en attente de la réponse... 403 Forbidden
2011-11-21 16:46:06 ERREUR 403: Forbidden.

Faisons-nous maintenant passer pour un navigateur, et nous avons une
réponse toute différente :

***@odin:~$ wget --user-agent="Mozilla/5.0" http://www.afccc69.fr/
--2011-11-21 16:46:28-- http://www.afccc69.fr/
Résolution de www.afccc69.fr... 195.20.248.198
Connexion vers www.afccc69.fr|195.20.248.198|:80... connecté.
requête HTTP transmise, en attente de la réponse... 200 OK

AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen :
ini_set('user_agent', 'Mozilla/5.0');

Cette ligne aura pour effet de vous faire passer pour un autre navigateur.

Ou alors, si vous n'avez pas la possibilité de faire un ini_set chez
votre hébergeur, il faudra alors envisager de ré-écrire votre bout de
code basé sur fopen en le remplacant par CURL sans oublier de le
configurer pour qu'il se fasse passer pour un autre navigateur.

Bon travail ! :-)
--
Bruno Baguette
Pascale
2011-11-21 16:41:07 UTC
Permalink
Post by Bruno Baguette
AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen
: ini_set('user_agent', 'Mozilla/5.0');
Merci beaucoup, Bruno, ça marche, c'est impeccable !
Post by Bruno Baguette
Cette ligne aura pour effet de vous faire passer pour un autre
navigateur.
Par contre, je ne suis pas sûre d'avoir bien compris ce qui se passe : en
fait, le problème vient de ce que je vérifie l'URL à partir de mon fopen,
au lieu de l'ouvrir normalement en mettant l'adresse de mon navigateur ? Et
il faut donc que je fasse croire que l'accès à l'URL vient d'un navigateur
et non d'une ligne de PHP, c'est ça, ou j'ai rien compris ?
--
Pascale
http://www.la-grille-verte.net
Denis Beauregard
2011-11-21 16:46:29 UTC
Permalink
Le Mon, 21 Nov 2011 17:41:07 +0100, Pascale
Post by Pascale
Post by Bruno Baguette
AMHA, le plus simple serait d'ajouter un ini_set avant d'appeler fopen
: ini_set('user_agent', 'Mozilla/5.0');
Merci beaucoup, Bruno, ça marche, c'est impeccable !
Post by Bruno Baguette
Cette ligne aura pour effet de vous faire passer pour un autre navigateur.
Par contre, je ne suis pas sûre d'avoir bien compris ce qui se passe : en
fait, le problème vient de ce que je vérifie l'URL à partir de mon fopen,
au lieu de l'ouvrir normalement en mettant l'adresse de mon navigateur ? Et
il faut donc que je fasse croire que l'accès à l'URL vient d'un navigateur
et non d'une ligne de PHP, c'est ça, ou j'ai rien compris ?
Cela ressemble à un anti-pompage : on limite les visites aux "humains"
et on bloque tout ce qui ressemble à un robot.


Denis
Pascale
2011-11-21 17:23:08 UTC
Permalink
Post by Denis Beauregard
Cela ressemble à un anti-pompage : on limite les visites aux "humains"
et on bloque tout ce qui ressemble à un robot.
Donc si c'est ça, c'est bien ce que j'avais compris, merci à vous deux.
--
Pascale
http://www.la-grille-verte.net
Continuer la lecture sur narkive:
Loading...