ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php – 保护未经授权人员的图像内容

2019-07-03 13:18:12  阅读:164  来源: 互联网

标签:php imagick


众所周知,对于许多Web开发人员来说,这是一个非常重要的问题.他们希望保护对其机密图像的直接访问或直接可读性.包含所有图像的文件夹是打开的,任何人都可以访问该文件夹,但我想做一些可以保护我的图像内容的东西,意思是,如果未经授权的人寻找图像,他可以通过访问相应的文件夹来获取图像但是内容将是隐形或难以理解的.我想如果我在这里找到解决方案,很多人都会从这个问题中得到帮助.写.htaccess并不总是一个稳定的选择.所以,在集思广益之后,我找到了一些方法来保护图像内容不被直接访问.我想使用Imagick with PHP来执行任何类型的图像编辑.

>添加和删除图层:上传后,添加图层以使图像内容不可见.因此,如果有人到达您存储的文件夹,图像将毫无意义,因为他将看到图层不是图像内容.然后删除该图层并向具有适当权限的人显示.
>将图像转换为其他格式:将图像转换为.txt,.exe,.bin,.avi或任何其他格式的任何格式,以便在不进行编辑的情况下,图像将不可见.转换回来向授权用户显示.
>图像网格:将图像划分为多个网格,例如,如果图像为中等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,imagick
来源: https://codeday.me/bug/20190703/1366997.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有