2010-09-17 10 views
2

J'essaie de créer un cookie pour mes forums phpBB à partir d'une page de connexion MediaWiki. Utiliser le crochet après une connexion au wiki est un succès, je veux lancer un script PHP qui définit le cookie.curl donne erreur 403?

Le script fonctionne lorsque je l'exécute indépendamment ou lorsque j'utilise GET, mais pour des raisons de sécurité, je veux POST au script. Pour cela, j'ai pensé que curl serait la meilleure option.

Malheureusement, même le script de base comme ceci:

curl_setopt($ch, CURLOPT_URL, "http://www.example.com/ForumLogin.php"); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_exec($ch); 
curl_close($ch); 

Donne-moi une erreur 403 interdite. Il n'y a aucune règle dans le fichier robots.txt qui devrait interférer. Quoi d'autre pourrais-je essayer de faire fonctionner le script, ou existe-t-il d'autres façons d'exécuter le script depuis MediaWiki?

+0

FWIW, il y a plusieurs extensions MediaWiki autour de l'intégration de phpBB. https://www.mediawiki.org/wiki/Extension:PHPBB/Users_Integration – Nemo

Répondre

5

Je soupçonne que la justification pour cela est explicitement d'arrêter le comportement automatisé - une mesure de sécurité anti-bot ou générale. Vous pouvez consulter le code source du site de destination et vérifier si de telles mesures sont disponibles - une recherche rapide du code pour '403' pourrait vous donner un aperçu. Il se peut même que les requêtes POST ne soient pas légitimes dans ce contexte - et donc empêchées pour des raisons de sécurité.

Je ne sais pas trop ce que vous voulez dire par «pour des raisons de sécurité». POST n'est pas plus sécurisé que GET. Ils sont tous deux ouverts à un examen aussi minutieux.

+0

La destination est une page manuscrite d'environ 20 règles. Je n'ai pas encore envoyé un POST, même le script de base dans la question est refusé par le script de réception. Aussi, parce que je dois envoyer le nom d'utilisateur et le mot de passe d'un script à l'autre j'ai pensé que je ne devrais pas faire cela dans la chaîne de requête d'une URL. Ai-je tort? –

+0

Avez-vous vérifié la configuration du serveur? Que diriez-vous d'autres pages? Concernant l'autre question: le POST n'est plus sécurisé. Vous avez besoin de SSL pour garder l'information secrète en transit. – Rushyo

+1

Ok, je me rends compte en utilisant curl GET et POST ne font pas de différence, mais j'ai choisi curl parce que je ne voulais pas un GET dans l'url. Ce qui est moins sûr, car il enregistre votre nom d'utilisateur et passe en tant que chaîne de requête dans l'historique du navigateur.De toute façon, ce n'est pas le problème. Que dois-je vérifier dans la configuration du serveur? –

6

Pour mon projet spécifique, le serveur génère une erreur 403 en cas d'erreur, mais renvoie des données. Donc, pour contourner le problème, je l'ai fait:

curl_setopt($ch, CURLOPT_FAILONERROR, 0); // Fail on errors 

Si vous désactivez l'échec sur les erreurs, vous pouvez toujours obtenir des données en arrière. J'espère que cela pourra aider.

+0

merci :) cela a fonctionné pour moi. –

0

à agir/demande comme essayer réel "boucle/7.39.0" utilisateur agent

$useragent= "curl/7.39.0"; 
curl_setopt($ch,CURLOPT_USERAGENT, $useragent); 

ou essayer les agents utilisateurs RANDAM de navigateurs liste de tableau comme

//browser pack start 
     $useragents=array(
     "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4", 
     "Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/600.1.3 (KHTML, like Gecko) Version/8.0 Mobile/12A4345d Safari/600.1.4", 
     "Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53", 
     "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5", 
     "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_2_1 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8C148 Safari/6533.18.5", 
     "Mozilla/5.0 (iPad; CPU OS 7_0 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465 Safari/9537.53", 
     "Mozilla/5.0 (iPad; CPU OS 4_3_5 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8L1 Safari/6533.18.5", 
     "Mozilla/5.0 (Linux; U; en-us; KFAPWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true", 
     "Mozilla/5.0 (Linux; U; en-us; KFTHWI Build/JDQ39) AppleWebKit/535.19 (KHTML, like Gecko) Silk/3.13 Safari/535.19 Silk-Accelerated=true", 
     "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.141.16-Gen4_11004310) AppleWebkit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true", 
     "Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Nexus S Build/GRJ22) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 
     "Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36", 
     "Mozilla/5.0 (Linux; Android 4.2.1; en-us; Nexus 5 Build/JOP40D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166 Mobile Safari/535.19", 
     "Mozilla/5.0 (BB10; Touch) AppleWebKit/537.10+ (KHTML, like Gecko) Version/10.0.9.2372 Mobile Safari/537.10+", 
     "Mozilla/5.0 (Linux; Android 4.3; Nexus 10 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.72 Safari/537.36", 
     "Mozilla/5.0 (Linux; U; Android 2.3; en-us; SAMSUNG-SGH-I717 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 
     "Mozilla/5.0 (Linux; U; Android 4.3; en-us; SM-N900T Build/JSS15J) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
     "Mozilla/5.0 (Linux; U; Android 4.0; en-us; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
     "Mozilla/5.0 (Linux; Android 4.2.2; GT-I9505 Build/JDQ39) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.59 Mobile Safari/537.36", 
     "Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1", 


     "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2125.111 Safari/537.36"); 
      //browser pack end 
    $useragent=$useragents[rand()%sizeof($useragents)]; 
    curl_setopt($ch,CURLOPT_USERAGENT, $useragent);