php curl - 需要使用 curl 提供对受保护目录的访问权限

Posted

技术标签:

【中文标题】php curl - 需要使用 curl 提供对受保护目录的访问权限【英文标题】:php curl - Need to provide access to a protected directory using curl 【发布时间】:2011-05-22 13:39:03 【问题描述】:

我有一个托管在 Apache 上的站点,其中包含一些受保护的内容。我想向在另一个应用程序中经过身份验证的用户提供对受保护内容的访问权限。使用 htaccess 和 htpasswd 保护内容。

我想使用 curl 设置用户名和密码,然后将用户重定向到受保护的文件夹。如果受保护的内容是单个文件,我可以轻松做到这一点,但我的解决方案似乎只适用于一页。一旦用户单击链接并尝试访问另一个页面,会话就会丢失。目录有数百页。

这是我正在使用的代码:

$ch=curl_init(); 
curl_setopt($ch, CURLOPT_URL,'http://domain.com/protected_folder/'); 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "username:password");  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
curl_exec($ch); 
curl_close($ch);

我对结果有两个问题:

    未完成完全重定向,因此单击的任何链接都将引用回 php 文件所在的文件夹,而不是受保护的文件夹。地址栏仍然显示 php 脚本的路径。 似乎会话立即丢失。任何访问受保护文件夹中资源的尝试都会使用登录框进行提示。

任何关于如何解决这两个问题的想法都将不胜感激。

【问题讨论】:

【参考方案1】:

您是否已经与使用 htaccess 身份验证结婚了?如果您改为通过 PHP 进行身份验证,您将拥有更大的灵活性。

http://php.net/manual/en/features.http-auth.php

【讨论】:

也许这会起作用,但我相信我的 php 不够强大,无法根据该链接中的信息来理解如何实现它。我要保护的文件是基本的 html 文件。我最终实现了这样的东西:askapache.com/htaccess/…

以上是关于php curl - 需要使用 curl 提供对受保护目录的访问权限的主要内容,如果未能解决你的问题,请参考以下文章

如何在 PHP 中使用 cURL/HTTP 将数据插入 CloudTables 数据库?错误:需要 API 密钥

PHP CURL模拟登陆

PHP 使用curl 执行远程服务器的一个shell脚本

PHP的curl功能扩展基本用法

通过 Curl (Mailchimp API) 发布 PHP 会话

php curl函数获取远程主机的信息