PHP curl 执行权限和 .htaccess


PHP curl execution permissions and .htaccess

我正在尝试使用 curl 命令在我的服务器上执行 php 脚本。出于安全原因,该脚本位于一个文件夹中,该文件夹被 .htaccess 文件限制为少数 IP,包括我的服务器。

我可以毫无问题地将这个文件包含在 php include 中,但我似乎可以使用以下 curl 命令执行它(这在文件夹不受限制时有效):

<?php 
// Execute the file server side. 
$fileurl = ("https://example.com/restrictedfolder/xyz12345.php");
exec("nohup curl ".$fileurl." > /dev/null 2>&1 & echo $!");
?>

我的印象是 htaccess 没有限制 php 访问文件(如包含所示),但 CURL 似乎并非如此。

有没有办法解决这个问题以在服务器端执行文件,但限制公众访问?

我的印象是htaccess并没有限制php从 访问文件(如包含所示),但这似乎没有 卷曲就是这种情况。

您的脚本无法访问文件。它通过Apache加载URL,就像普通浏览器一样。

您可以执行两项操作进行诊断:

  1. 捕获并显示 Curl 错误消息(而不是将它们发送到/dev/null

  2. 请参阅 Apache 错误日志(其中受限 IP 记录为 AH01630:客户端被服务器配置拒绝

最有可能的是,您不允许使用自己的本地 IP 地址。