Pek*_*ica 6 php apache security .htaccess
我正在寻找一些关于我一直在思考的事情的一些意见.这是一个非常普遍的问题,也许有解决方案,我还没有想到.
我有一个基于PHP的CMS.
对于在CMS中创建的每个页面,用户可以上载资源(要下载的文件,图像等)
这些资产存储在一个目录中,我们称之为"/ myproject/assets",基于每页(1个子目录= 1页,例如"/ myproject/assets/page19283")
用户可以在CMS中"取消发布"(隐藏)页面.当一个页面被隐藏,并且有人试图访问它因为他们记住了URL或者他们来自谷歌或其他东西时,他们会收到"未找到"消息.
但是,资产仍然可用.我也希望保护这些,以便当用户取消发布页面时,他们可以信任它完全消失了.(对于司法问题非常重要,比如法庭命令要把内容放下......这样的事情可能会发生).
最明显的方法是将所有资产存储在安全目录中(= Web服务器无法访问),并使用PHP"前门"在检查后传递文件.当项目需要防水时,这是我目前的方式,但我不喜欢它,因为PHP解释器运行网站上的每个微小图像,脚本和样式表.我希望有一个更快的方式.
.htaccess保护(拒绝来自所有或类似)并不完美,因为CMS应该是可移植的并且能够在共享环境中运行.我希望它甚至可以在IIS和其他Web服务器上运行.
我现在能想到的最好的方法是将特定页面的资产目录移动到未发布的安全位置,并在发布时将其移回.但是,管理员用户需要能够查看页面,即使它未被发布,所以我必须解决这个问题,即我必须从安全目录中提供这些资产.
任何人都可以想到一种方法,允许直接Apache访问文件(=没有通过PHP脚本),但仍然使用PHP控制访问?我不能.
我还会考虑一个可能在大多数共享环境中运行的简单的.htaccess解决方案.
编辑:管理界面的混合怎么样?在 ACP 中,您可以通过 PHP 方法访问,基本上将所有文件请求发送到 PHP 身份验证文件,但对于公共,您可以使用 HTTP AUTH/htaccess 来确定结果的可用性。这为您提供了公共方面的性能,但 ACP 方面的保护。
旧消息:
使用 mod_rewrite 类型操作时,.htaccess 与大多数 Apache 和 IIS<7 环境(使用各种 ISAPI 模块)兼容。唯一的例外是 IIS7 + 使用 web.config 文件的新重写模块。但是,我愿意您可以有效地生成/更改此实例的 web.config 文件,而不是使用 .htaccess。
鉴于此,您可以使用重写方法设置重定向并重定向到自定义 404 页面(希望发送正确的 404 标头)。它不是 100% 合适,因为实际资产应该是给出 403 标头的资产,但是......它有效。
这是我会采取的路线,除非您想为每个服务器平台正确创建 HTTP AUTH 设置。另外,如果你做得正确,你可以使你的系统可扩展,以允许你或你的用户将来允许其他类型(如果他们愿意的话,包括基于 php 的选项)。
| 归档时间: |
|
| 查看次数: |
2194 次 |
| 最近记录: |