- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
众所周知,这对很多网站开发者来说是一个非常重要的问题。他们希望保护对其 secret 图像的直接访问或直接可读性。包含所有图像的文件夹是打开的,任何人都可以访问该文件夹,但我想做一些可以保护我的图像内容的事情,这意味着,如果未经授权的人寻找图像,他可以通过访问适当的文件夹来获取图像但是内容将不可见或难以理解。我想如果我在这里得到解决方案,很多人都会从这个问题中得到帮助。编写 .htaccess
并不总是一个稳定的选择。因此,在集思广益之后,我找到了一些方法来保护图像内容不被直接访问。我想使用 Imagick
和 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 - 防止未经授权的人访问图像内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20257189/
据我所知,要将声音设置为铃声,应将其插入 MediaStore。在 MediaStore 中写入,需要 WRITE_EXTERNAL_STORAGE 权限。但是...有没有办法在不需要 WRITE_E
我只是想设置铃声。我不想授予 WRITE_SETTINGS 权限,我可以找到大部分答案来授予 WRITE_SETTINGS 权限但是我正在使用一个应用程序,该应用程序没有设置铃声的 WRITE_SET
我在 Windows 10 中以管理员身份运行 Android studio。AVD 是 Nexus 5X API 28。我正在尝试运行 flutter 演示,但设备下拉框仍然显示“无设备”,它只是有
我的应用程序构建于 spring-social-twitter允许用户使用 Twitter 登录的功能最近已停止工作。 我收到如下错误消息: Callback URL not approved for
我正在尝试使用 python-firebase 更新 Firebase库,但无法使用经过修改的示例代码进行身份验证: from firebase import firebase as fb auth
今天,当我尝试使用 GCC7 编译一个非常简单的 C++ 程序时,我遇到了一个非常奇怪的问题:程序没有向构造函数中的 vector 添加任何元素,当编译时没有优化(例如 -O0/-Og ) 来自 Re
简单问题:我正在尝试使用 Discord API 备份服务器(或公会,如果您使用官方术语)上的所有消息。 因此,我实现了 OAuth,没有任何问题,我有访问 token ,并且可以查询一些端点(我尝试
您好,我正在使用 msdn 中的以下代码供我公司内部使用: using System; public sealed class Singleton { private static volati
我们从 Google 的 GCM 服务中收到间歇性的 401 Unauthorized 错误。在过去,它 100% 的时间都有效。该问题可能与我们的路由器接受 IPv6 流量同时发生,但即使我们在适配
我有一个使用 Playwright + TS-Jest 设置 E2E 测试的项目。为了组织我的测试,我使用页面对象模型。结构看起来像这样: 我想在 tsconfig.json 中使用 TypeScri
我有一个后端应用程序在 Google Cloud Storage 中同步文件,我想在 javascript 中列出存储中的所有文件,而不需要从后端请求它们。我已经设置了 CORS,并且所有文件的 ac
我在尝试在私有(private) gitlab 存储库中发布 Artifact 时遇到问题。我正在使用 Maven 并使用个人访问 token 进行身份验证。当我运行 mvn deploy -s ~/
这是从 Google+ 登录中使用的 GoogleApiClient 获取 token 的传统方式: String token = GoogleAuthUtil.getToken(apiClient.
我在阅读 facebook Open Graph 文档后比较确定我不能让网站“订阅”公共(public)页面,除非该页面安装了我的应用程序。如果那是错误的,请告诉我。 我想做的是一个照片库,非常简单,
我是一名优秀的程序员,十分优秀!