【问题标题】:codeigniter controlled access to a url/foldercodeigniter 控制对 url/文件夹的访问
【发布时间】:2012-02-11 09:25:21
【问题描述】:

我被困在我希望在验证用户后可以访问包含包含一些文件(html、swf 等)的文件夹的 url 的情况。

例如。

要访问的网址是:

A - http://mysite.com/files/version/1/file.swf

上面的网址可以通过链接访问,

B - http://mysite.com/view/1

我已经实现了一种对普通用户隐藏 URL A 的方法,但是如果用户不知何故是半技术人员,那么他可以通过 firebug 或其他工具知道 swf 文件的位置。那么,要确保文件访问的安全,我应该怎么做呢?

如果用户以某种方式知道第一个 url(A),然后在浏览器中输入它,我必须检查用户是否已登录,如果验证完成,它会让 url A 被加载。

由于在 CI 中,控制器名称不能与根目录中的文件夹命名相同,在这种情况下,我不能有一个名为“文件”的控制器。因此,使这种对 url 的安全访问起作用的唯一选择是使用 htaccess rule/cond。如果这是唯一的选择,那么如何通过 htaccess 实现它,如果不是,那么我还有哪些其他选择。

codeigniter 的 URI 路由会起作用吗,因为当我这样尝试时:

$route['files/version/1/(:any)'] = “view/$1”;

它不起作用,可能是因为没有控制器/功能/参数作为文件/版本/1 ...

寻求快速帮助。谢谢

【问题讨论】:

    标签: .htaccess codeigniter directory


    【解决方案1】:

    如果不使用 .htpasswd,就没有万无一失的方法。

    您可以实现的一件事是“默默无闻的安全性”。在这种情况下,您可以将所有对文件的请求重定向到 URL http://mysite.com/view/file-id,而不是直接加载请求的文件,而是加载带有适当标题的 .php 模板 - 无论是图像、flash 文件还是其他任何东西.

    但这实际上取决于文件的管理方式,因为每个文件都需要数据库中的条目,并且您必须为不同类型的文件输出不同的标题。如果有人仍然设法猜到文件的路径,它将可以直接访问。

    【讨论】:

      猜你喜欢
      • 2015-03-01
      • 1970-01-01
      • 2012-08-28
      • 2012-11-08
      • 1970-01-01
      • 2012-06-04
      • 1970-01-01
      • 2019-12-07
      • 1970-01-01
      相关资源
      最近更新 更多