gpt4 book ai didi

php - 防止未经授权的人访问图像内容

转载 作者:可可西里 更新时间:2023-10-31 23:31:30 25 4
gpt4 key购买 nike

众所周知,这对很多网站开发者来说是一个非常重要的问题。他们希望保护对其 secret 图像的直接访问或直接可读性。包含所有图像的文件夹是打开的,任何人都可以访问该文件夹,但我想做一些可以保护我的图像内容的事情,这意味着,如果未经授权的人寻找图像,他可以通过访问适当的文件夹来获取图像但是内容将不可见或难以理解。我想如果我在这里得到解决方案,很多人都会从这个问题中得到帮助。编写 .htaccess 并不总是一个稳定的选择。因此,在集思广益之后,我找到了一些方法来保护图像内容不被直接访问。我想使用 ImagickPHP 来执行任何类型的图像编辑。

  1. 添加和删除图层:上传后,添加图层以使图像内容不可见。因此,如果有人到达您存储的文件夹,则图像将毫无意义,因为他将看到图层而不是图像内容。然后移除该层并向他们展示谁拥有适当的权利。

  2. 将图像转换为另一种格式:将图像转换为任何格式,如 .txt、.exe、.bin、.avi 或任何其他格式,这样无需编辑,图像就可以胜任可见。转换回来以显示给授权用户。

  3. 图片网格:将图片分成若干个网格,比如中等100个网格,改变网格的位置,使内容不清晰。为此,我们可以将每个网格命名为 1、2、3 等,然后将位置更改为 $position - 20。所以25号位置的格子会到5,100到80,1到81等等。反向同样的方式显示给授权用户。

完全保护是不可能的,但我们可以让它变得更难。我不知道 Imagick 可以使用这三种方法中的哪一种,哪种不行。如果你知道请告诉我。提前致谢。

最佳答案

您可以将这些图像放在 public_html 之外的不同文件夹中(这样任何人都无法访问它们)。然后通过脚本,如果用户已登录,您将获取图像文件内容,然后更改标题。如果用户未登录,您可以显示随机图像或显示默认图像。

例如公共(public)html文件夹是:/var/www 你的图片文件夹可以是:/registered_user/images/

然后在你的 PHP 脚本中你可以这样写:

<?php
if(!userLogged() || !isset($_GET['image'])) {
header('Location: /');
die();
}
$path = '/registered_user/images/';
$file = clean($_GET['image']); // you can create a clean function that only get valid character for files

$filename = $path . $file;
if(!file_exists($filename)) {
$filename = '/var/www/images/bogus.jpg';
}
$imageInfo = getimagesize($filename);

header ('Content-length: ' . filesize($filename));
header ('Content-type: ' . $imageInfo['mime']);
readfile ($filename);

关于php - 防止未经授权的人访问图像内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com