是否可以保护网站上的图像和文档,但仍然能够从受密码保护的页面访问它们?

Is it possible to protect images and documents on a website but still be able to access them from a password protected page?

我 运行 一个网站,该网站的页面受到简单 php 密码保护脚本的保护(我读到这不是特别安全,但我不能在我的网站上使用 .htaccess主持人)。由于页面上为用户存储了图像和文档,因此需要保护该页面。 php 脚本用于保护页面,但如果您未登录,您仍然可以通过直接进入域(例如 http://example.com/images/example.jpg)来访问图像。有没有一种方法可以防止这种情况发生(prefrebaly 而不必更改密码保护方法)。任何帮助是极大的赞赏。谢谢

您可以将私人文档存储在 public 文件夹之外的文件夹中。然后你只需要设置一个表单,将密码发布到另一个页面,检查通过,如果匹配加载图像,否则打印错误。 代码应该是这样的

if($_POST['PASS']=="strongpass"){
$img = 'root/blah/image.jpeg';
header('Content-Type: image/jpeg');
readfile($img);
}

我建议将所有文档和图像放在主机上的 public 文件夹之外。然后通过 PHP 脚本访问所有这些脚本,该脚本从服务器上的安全位置读取它们并将它们输出到浏览器。

您可以使用如下函数:http://php.net/manual/en/function.readfile.php or http://php.net/manual/en/function.file-get-contents.php 读取文件。

<?php
echo file_get_contents($secure_file_path);
?>

除非通过该脚本,否则任何人都无法从浏览器访问您的文档。显然,读取文档的脚本必须受到某种身份验证的保护。