如何访问codeigniter根目录外的文件夹而不在url中传递敏感信息?

如何访问codeigniter根目录外的文件夹而不在url中传递敏感信息?,codeigniter,Codeigniter,我的代码(视图)到目前为止,当我使用根目录访问文件夹(上载)时,一切正常,但我希望使用同一服务器访问位于不同位置的文件夹,而不在加载图像时在url中显示敏感信息 <img src="<?php echo base_url('/uploads/'.$popular_car['img_path'])?>" class="card-img-top" style="height: 150px;"></div> “class=”卡img top“ st

我的代码(视图)到目前为止,当我使用根目录访问文件夹(上载)时,一切正常,但我希望使用同一服务器访问位于不同位置的文件夹,而不在加载图像时在url中显示敏感信息

   <img src="<?php echo base_url('/uploads/'.$popular_car['img_path'])?>" class="card-img-top" 
   style="height: 150px;"></div>

“class=”卡img top“
style=“高度:150px;">

有很多选择。大多数都涉及某种数据库使用。这就是我所做的(非常概括)

每个需要访问的文件在表上都有一条记录。该记录有一个主id、一个秘密随机令牌和文件路径。表由主id和令牌索引

在URL上,我得到类似于
base\u URL('controller/file\u access/).$id./'.$token
。收到请求后,我会检查文件表,如果两个参数都匹配,我会将文件流式传输到浏览器。这种方式虽然有点复杂,但有两个主要好处:

1.-它防止用户尝试不同的数字ID并查看显示的内容。由于ID是数字且自动递增的,因此您需要做的就是从1循环到100000并下载所有文件。添加令牌并使用这两个参数查询表可大大降低有人获得他/她不打算使用的文件的风险

2.-它模糊了文件的真实位置,因为以这种方式流式传输到浏览器看起来(在浏览器眼中)位于
example.com/controller/file\u access/id/token
中,但图像的真实或相对路径仍然是隐藏的,无法从web访问

以此为基础,您可以根据需要在此基础上添加大量逻辑。如果文件是私有的和/或特定于用户的,则表中还可以有一个“allowed_user”字段,以便在不允许用户查看文件(即使他有正确的ID/令牌组合)时,您不会对其进行流式处理


这只是对我在两个站点上所做的粗略的描述。把它作为你可以建立的理论基础。

有很多其他的选择。大部分将涉及某种数据库使用。这就是我所做的(大大总结)

。 每个需要访问的文件在表上都有一条记录。该记录有一个主id、一个秘密随机令牌和文件路径。表由主id和令牌索引

在URL上,我得到类似于
base\u URL('controller/file\u access/).$id./'.$token
。收到请求后,我会检查文件表,如果两个参数都匹配,我会将文件流式传输到浏览器。这种方式虽然有点复杂,但有两个主要好处:

1.-它防止用户尝试不同的数字ID并查看显示的内容。由于ID是数字且自动递增的,因此您需要做的就是从1循环到100000并下载所有文件。添加令牌并使用这两个参数查询表可大大降低有人获得他/她不打算使用的文件的风险

2.-它模糊了文件的真实位置,因为以这种方式流式传输到浏览器看起来(在浏览器眼中)位于
example.com/controller/file\u access/id/token
中,但图像的真实或相对路径仍然是隐藏的,无法从web访问

以此为基础,您可以根据需要在此基础上添加大量逻辑。如果文件是私有的和/或特定于用户的,则表中还可以有一个“allowed_user”字段,以便在不允许用户查看文件(即使他有正确的ID/令牌组合)时,您不会对其进行流式处理


<>这只是我在几个网站上做的粗略描述。把它作为你可以建立的理论基础。

好的问题。有很多方法可以做到这一点。我只是粗略地描述了我是如何解决这个问题的。它有点复杂,但是对于应用程序文件夹之外的MEIS上传文件夹来说,工作得很好。??是的,它实际上位于同一服务器内的不同位置好问题。有很多方法可以做到这一点。我刚刚发布了一篇关于我如何解决相同问题的粗略描述。这有点复杂,但对于放置在应用程序文件夹外的meis上载文件夹来说效果很好??是的,它实际上位于同一服务器内的不同位置