【问题标题】:PHP uploader and htaccess password problemsPHP上传器和htaccess密码问题
【发布时间】:2011-05-16 21:10:39
【问题描述】:

我有一个相当莫名其妙的问题/问题,让我为你解决。

我有两个目录——画廊和上传者

上传器目录受 htaccess 密码保护。这是几个 PHP 页面和 PHP 文件上传器所在的位置。当我在目录中加载索引时访问索引 PHP 文件时,我输入了我的凭据。

问题是上传者正在上传文件,然后将其移动到画廊目录(不受密码保护)。然后它运行其他脚本来复制该图像,调整它的大小,然后删除原始图像。在我将 htaccess 密码放在上传程序目录之前,此过程运行良好。因此,由于某种原因,受保护目录中的 PHP 上传器无法移动/处理上传的图像,然后将其复制到未受保护的目录中。

对我需要做什么有任何想法吗?我不确定问题是 PHP 上传程序调用了受保护目录中的其他脚本,还是在将其移动到不受保护的目录时遇到了问题。

编辑: 这是一些示例代码,您可以看到没有使用 URL(它们也没有在 resizeMyImageTN 方法中)。

//WHERE THE SAVE HAPPENS!


move_uploaded_file($_FILES['Filedata']['tmp_name'], '../../uploads/'.$folder.'/'.$new_index.'-' . $_FILES['Filedata']['name']);


//Call function to resize images pass in path

resizeMyImageTN($_FILES['Filedata']['name'],$folder, $new_index);


unlink('../../uploads/'.$folder.'/'.$new_index.'-' . $_FILES['Filedata']['name']);

【问题讨论】:

    标签: php .htaccess


    【解决方案1】:

    .htaccess 保护在网络服务器级别起作用。但是,除非您在各种文件操作调用中使用 URL,否则 PHP 脚本在文件系统级别工作,并且永远不会看到 .htaccess 保护。

    move_uploaded_file($_FILES['uploaded']['tmp_name'], '/some/dir/that/is/protected/newname.txt');
    

    不涉及HTTP层,即没有保护。但是如果你尝试过

    move_uploaded_file($_FILES['uploaded']['tmp_name'], 'http://myserver.com/newname.txt');
    

    这将涉及新的 HTTP 请求、重新上传文件,并受到服务器上任何 URl 限制的约束。

    如果没有看到一些代码,我们很可能无法回答您的问题。

    【讨论】:

    • 如果上传脚本调用其他脚本,如你所说,我会检查是否有任何脚本通过 http 被调用(在网站的 access_log 中有证据)。跨度>
    • 唯一被调用的是另一个 PHP 文件,我使用标准 PHP 包含语句包含该文件。 (它位于同一受保护目录的子文件夹中)。它是一个 PHP 图像缩放器,使用相对路径作为参数来保存图片(即 ../../gallery/upload)
    【解决方案2】:

    我忘了回答这个问题(我的错)。最后,我只能通过不保护上传目录 .htaccess 来使其工作。这并不理想,但我似乎无法弄清楚其他任何事情。既然我问了这个问题,我已经将网站转换为 Django,这解决了我所有的问题。

    【讨论】:

      猜你喜欢
      • 2015-06-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-25
      相关资源
      最近更新 更多