在我多年来制作的各种 PHP 登录系统中,我尝试了各种不同的方法来保护页面。
我总是使用 .htaccess,它将所有请求路由到 index.php。但是,如果您直接键入某个页面的地址(如果您知道的话),它将加载,这显然不是很安全。
在一台服务器上,我尝试将所有“安全”页面放在public_html 之外。这很好用。这意味着您不能再转到“文件夹/产品/product.php”。伟大的!这意味着我可以将对该页面的所有请求放在一个包含中,并完全控制谁查看该页面。
但是,我在另一台服务器上遇到了问题,基本上它不允许我访问httpdocs
文件夹之外的任何内容。好吧,严格来说,我可以访问,打开 FastCGI 支持,但我得到会话写入错误。将其关闭,然后将 PHP 作为 Apache 模块打开,我得到basedir restrictions
.
好的。那么我如何确定一个页面只能由我访问呢?即使它在公共文件夹中?是否有某种 .htaccess 我可以放在那里,这会阻止任何人从外部访问它?或者如果我对每个文件夹都设置密码,密码是否有效,这是否意味着我仍然可以包含这些文件?
我真的需要一个好的最终解决方案。一种适用于所有服务器的方法,我可以看到发生这种情况的唯一方法是将所有内容保存在公用文件夹中。