我有以下代码:的file_get_contents和浏览器会话
$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;
浏览器已经有我需要访问,所以如果我打开新的标签页的网址,页面才能正确显示在网站的会话加载。
问题是,PHP脚本,重定向到“你没有登录”页面。请注意,即使在重新启动浏览器后,该url仍然可用。
任何想法如何获得内容,而无需编写登录到网站的代码?
我有以下代码:的file_get_contents和浏览器会话
$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;
浏览器已经有我需要访问,所以如果我打开新的标签页的网址,页面才能正确显示在网站的会话加载。
问题是,PHP脚本,重定向到“你没有登录”页面。请注意,即使在重新启动浏览器后,该url仍然可用。
任何想法如何获得内容,而无需编写登录到网站的代码?
如果一个网站可以访问任意外部网站上的数据,这将是一个巨大的安全问题。想象一下:file_get_contents('https://yourbank.com/all-your-details')
。
要做到这一点,唯一的方法是向用户询问他/她在外部网站上的登录凭据并手动登录。然而,这将是不可靠的,因为认证过程可能会改变(并且要求某人输入他/她的密码是非常不礼貌的)。
这通常是Web服务API的用途,但如果没有可供您感兴趣的网站可用,那么您会遇到困难。
如果你已经知道了网站的登录凭据,那么你可以硬编码到他们使用Blauesocke所概述的方法的脚本,但如果细节是唯一的当前用户这是不行的。
似乎你是对的,因为@hakre提到我需要通过凭据,然后请求具体页面。我将需要就如何实现这一点做更多的研究。 – user1359575
听起来像xyz.com使用cookie来制作持久性数据。您的域(运行php脚本)根本无法访问该会话。这是一项安全措施。 – Lix
*“任何想法如何获得内容,而无需编写登录到站点的代码?”*如果站点要求您登录,则不需要登录 – 2013-01-06 23:21:18
您还需要将会话凭证/令牌传递到页面,例如,通过Cookie请求头或URL上的某个查询参数 - 取决于该网站如何处理会话。如果会话绑定到远程IP,您可能无法劫持会话(您可以将其称为会话锁定,了解其工作原理,同样的原理适用于此)。 – hakre