php - 保护目录免受直接 URL 访问

标签 php mysql apache .htaccess mod-rewrite

需要一些帮助...

我需要保护 DIRECTORY 中的所有 FOLDERS 免受直接 URL 访问。我可以用 .htaccess 来做吗?如果可以,怎么做?或者他们是更安全的方法?

这是我的情况,我允许用户上传 pdf 文件。

文件被发送到/uploads/{userid}/{filename}

这一切都很好,但问题是如果有人知道 {userid}{filename} 可以直接访问 PDF >

我想保护 uploads 目录和所有子目录免受直接 URL 访问。

同时,我的数据库 (MySQL) 需要能够浏览 uploads 目录和子目录,以确认 PDF 文件已上传,并让管理员从管理员那里下载文件控制面板。

现在我不要求您编写我的代码。我只是让您知道我的规范,因为我假设有人可能会建议 htpasswd,但我认为我无法根据我的要求使用该解决方案。

如果您有一个简单的解决方案,或者如果您可以为我指出正确的教程,请这样做。

谢谢!

最佳答案

正如 Fabio 指出的那样 - 最好将此类文件保留在 Web 根目录之外。但是您仍然可以使用 .htaccess 来保护文件。除非您不小心删除了 .htaccess 或系统管理员更改了主配置(有时会发生),否则它们将受到保护。

只需将一个 .htaccess 放入您要保护的目录中,并在该 .htaccess 中放入一行:

deny from all

关于php - 保护目录免受直接 URL 访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11603801/

相关文章:

java - Eclipse 自动关闭

php - 使用信息窗口设置标记聚类器标记

php - 如何更改 WooCommerce 中 S 的评论评分?

php - 仅使用每个类别 id 之一对数据集进行排序

mysql - 使用 Knex、Express 和 NodeJS 执行登录和注册

angularjs - 由 Google 索引的 Angular 应用程序

php - Mysqli 选择列名但跳过第一列

mysql - MAX(count) + 1 插入时,MySQL

用于显示当前配置变量的 mysql 命令

php - wamp 服务器 500 内部服务器错误