代码之家  ›  专栏  ›  技术社区  ›  Stephan Muller

卷曲给出403错误?

  •  3
  • Stephan Muller  · 技术社区  · 14 年前

    我正在尝试从MediaWiki登录页为我的phpBB论坛设置cookie。在成功登录wiki后使用hook,我想运行一个php脚本来设置cookie。

    当我独立运行脚本或使用GET时,脚本可以工作,但出于安全原因,我希望发布到脚本。为了这个我想 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禁止的错误。这里没有规矩机器人.txt这应该会干扰。我还可以尝试什么来让脚本工作,或者有没有其他方法可以在MediaWiki中运行脚本?

    4 回复  |  直到 9 年前
        1
  •  5
  •   Rushyo    14 年前

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

    顺便说一下,我不知道你说的“出于安全考虑”是什么意思。投递并不比获取更安全。他们都接受同样多的审查。

        2
  •  6
  •   rockstardev    11 年前

    对于我的特定项目,如果发生错误,服务器将抛出403错误,但仍然返回数据。所以为了避开这个问题,我做了这样一件事:

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

    如果您禁用了fail-on错误,您可能仍然会得到一些数据。希望有帮助。

        3
  •  3
  •   Jp_    10 年前

    我的解决方案是设置用户代理选项,这样cURL就可以假装成浏览器了。用php设置的一个例子是

    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6');
    

    参考文献:

        4
  •  2
  •   Hassan Saeed    7 年前

    要像real一样操作/请求,请尝试“curl/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);