我正在尝试从MediaWiki登录页面为我的phpBB论坛设置一个cookie.登录wiki成功后使用钩子,我想运行一个设置cookie的php脚本.
当我独立运行或使用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中运行脚本?
对于我的特定项目,如果发生错误,服务器将抛出403错误,但仍返回数据.所以为了解决这个问题,我这样做了:
curl_setopt($ch, CURLOPT_FAILONERROR, 0); // Fail on errors
如果禁用失败的错误,您可能仍会获得一些数据.希望有所帮助.
我怀疑这样做的理由是明确停止自动行为 - 反机器人或一般安全措施.您可能希望查看目标站点的源代码并检查任何此类度量 - 快速搜索"403"的代码可能会提供一些见解.甚至可能是POST请求在该上下文中不合法 - 因此出于安全原因而被阻止.
顺便说一句,我不确定你的意思是"出于安全考虑".POST不比GET更安全.他们都受到同样严格的审查.