【问题标题】:Fully securing a directory完全保护目录
【发布时间】:2010-11-04 11:54:00
【问题描述】:

保护目录有哪些不同的方法?

包括一个索引页面,因此无法查看内容

这样做的问题是,如果人们知道他们所追求的文件名,他们仍然可以访问这些文件

包括一个 htaccess 文件以拒绝所有

这似乎是最好的方法,但是否有任何情况下可以传递 htaccess 文件?是否还有 htaccess 不可用的情况?

限制文件夹访问

这也是一个不错的解决方案,但问题是,我要保护的文件夹应该可以被程序查看和写入。

还有其他方法可以实现文件夹安全吗?

【问题讨论】:

    标签: security apache hosting


    【解决方案1】:

    Apache 的最佳实践是使用 htaccess 进行限制 - 这仅限制来自网络服务器 - 但这应该是您所需要的。您可以在其中添加身份验证 - 但对于大多数需要,您可以拒绝所有访问 - 这会完全隐藏目录。

    另一个可以很好地使用 htaccess 拒绝直接访问的方法是在你的路由目录中使用 htaccess 来重写 url。这意味着像 /example/listItems/username/ted 这样的请求可以重写为对 php 或其他文件的调用,例如:

    /application/index.php?module=listItems&username=ted

    这样做的好处是网络服务器不会提供任何目录的路径,因此人们更难四处寻找目录。

    如果你想保护一个图片目录,你也可以使用 htaccess 重定向到一个不同的目录,这样 /images/image5.png 实际上就是一个调用:

    /application/images/image5.png

    【讨论】:

    • 我还认为使用 htaccess 保护目录是迄今为止最简单和最简单的方法。我担心的是有没有办法让 htaccess “不起作用”?是否会有任何禁用 htaccess 的托管环境? (我认为 IIS 不使用 htaccess,所以请假设所有这些都可以在 Apache 上运行)
    • 你说得对,我不能肯定地说有人可能会特意禁用 htaccess - 但认为这不太可能。
    • 在您的日常共享主机帐户中,htaccess 通常可以正常工作,对吧?
    【解决方案2】:

    您也可以尝试不将受保护的目录放在 www 目录下,而是放在其他“非 www 可见”位置。如果您的应用需要读取/写入数据,请告诉它在其他位置进行。修改其属性,以便只有应用程序具有这样做的适当权限。

    【讨论】:

    • 我也考虑过使用这个过程,但我希望我的应用程序尽可能地防白痴,主要是通过网络安装程序上传+安装。如果一切都失败了,这将是我的应用程序的方式。
    猜你喜欢
    • 1970-01-01
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2015-08-15
    • 2014-02-25
    • 2011-11-26
    • 2014-02-15
    相关资源
    最近更新 更多