【问题标题】:Html access files outside of the public folderHtml 访问公用文件夹之外的文件
【发布时间】:2012-05-22 19:11:46
【问题描述】:

我有一个名为“upload.php”的 php 脚本,它有几个需要工作的文件。我不希望人们能够通过在 URL 中输入文件名来访问它需要的那些文件。我该怎么做才能让 upload.php 访问公共文件夹之外的那些?

我想有可能把它全部放在公共文件夹之外并制作一个upload.html 文件来指向upload.php?如果是,该怎么做?

【问题讨论】:

    标签: html apache security directory


    【解决方案1】:

    是的,如果您不希望人们从服务器外部访问这些文件,那么最好的办法是将它们保存在公用文件夹之外,即服务器文件系统的其他位置。 PHP,在服务器端被解释,仍然可以访问文件(假设权限是正确的)。

    您将如何访问它们取决于您的代码中“它需要如何工作”。假设有问题的文件是需要包含的 PHP 文件,includerequire 都采用服务器端路径,并且可以引用服务器文件系统上的任何文件。

    类似这样的:

    include '/full/path/to/file.php';
    

    【讨论】:

      【解决方案2】:

      您也可以将这些 php 文件放在一个文件夹中,比如说“包含”并在其中设置一个 .htaccess 文件:

      <Limit GET POST PUT>
        order deny,allow
        deny from all
        allow from 127.0.0.1
      </Limit>
      

      【讨论】:

      • 我遇到了类似的要求。我使用了您的建议,不能直接请求 .php,这很好。但不幸的是,我的 php 也不能包含在我网站上的另一个页面中。权限是 644。有什么想法吗?
      • @square_eyes 你怎么包括他们?如果您正在发出http 请求,那么也许您还应该更改allow from 部分?
      • 我正在使用&lt;?php include 'my/path/myfile.php' ; ?&gt;。另一件需要注意的是,似乎包含了一些文件。我得到一个 Div 框,它在我的 .php 文件的输出中定义。难道是我那里的javascript失败了?我包含的文件运行一个小脚本,该脚本引用同一文件夹中的两个 js 库。
      • 换句话说。我包含的 .php 文件查询数据库,用 javascript 写出一个数组,然后引用一个呈现 js 图表的库 (Flot)。这最终出现在我运行包含的页面上。在我将 .htaccess 设置为锁定对独立文件的访问之前,一切正常。
      • @square_eyes 现在越来越复杂了,你能加入PHP chatroom吗?
      猜你喜欢
      • 2014-05-24
      • 2018-11-27
      • 2019-09-10
      • 2015-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-31
      相关资源
      最近更新 更多