2010-09-17 75 views
2

我想从MediaWiki登录页面为我的phpBB论坛设置一个cookie。登录到wiki后使用hook是成功的,我想运行一个设置cookie的php脚本。curl给出403错误?

当我独立运行它或当我使用GET时,该脚本有效,但出于安全原因,我希望POST脚本。为此,我认为curl将是最佳选择。

不幸的是,即使这样的基本的脚本:

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

给了我一个403 Forbidden错误。 robots.txt中没有规定会干扰。我还可以尝试让脚本起作用,还是有其他方法可以在MediaWiki中运行脚本?

+0

FWIW,有几个MediaWiki扩展周围phpBB集成。 https://www.mediawiki.org/wiki/Extension:PHPBB/Users_Integration – Nemo 2015-04-06 11:16:45

回答

5

我怀疑这样做的理由是明确地停止自动行为 - 一种反机器人或一般安全措施。您可能希望查看目标网站的源代码并检查是否有任何此类措施 - 快速搜索“403”代码可能会提供一些见解。甚至可能是POST请求在这种情况下不合法 - 因此出于安全原因而被阻止。

我不确定'安全原因'是什么意思。 POST不比GET更安全。他们都接受同样多的审查。

+0

目的地是一个约20条规则的手写页面。我还没有发送POST消息,即使接收脚本也拒绝了该问题中的基本脚本。另外,因为我必须将用户名和密码从一个脚本发送到另一个脚本,我想我不应该在url的查询字符串中执行此操作。我错了吗? – 2010-09-17 13:24:12

+0

您是否检查过服务器配置?其他网页如何?关于另一个问题:POST不再安全。您需要SSL才能将信息保密。 – Rushyo 2010-09-17 13:44:58

+1

好吧,我知道使用curl时GET和POST没有什么区别,但是我选择了curl,因为我不想在URL中使用GET。这是不安全的,因为它会保存您的用户名,并作为查询字符串传递到浏览器历史记录中。无论如何,这不是问题。我应该在服务器配置中检查什么? – 2010-09-17 13:52:00

6

对于我的特定项目,如果发生错误,服务器将抛出403错误,但仍返回数据。所以,要解决这个问题,我这样做:

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

如果禁用失败的错误,你可能仍然得到一些数据备份。希望有所帮助。

+0

谢谢:)它为我工作。 – 2016-01-08 09:23:06

0

表现得像真正的尝试 “卷曲/ 7.39.0” 用户/请求代理

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

或尝试randam用户代理从浏览器阵列列表如

//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);