【发布时间】:2019-06-26 22:21:29
【问题描述】:
我正在尝试弄清楚如何在查看控制台或源代码时隐藏图像的 url。
我看到其他人问这个问题是为了阻止用户下载图像,但这不是问题 - 事实上他们应该能够下载/保存图像。
真正的原因是因为我的用户正在将我网站上的图片上传到第三方存储服务,例如 cloudinary。我不希望用户知道图像的去向,因为我担心他们会操纵发送或接收的数据。这只是一项额外的安全措施,即使在检查发送/接收的图像确实是图像 url 而不是恶意代码或任何东西之后也是如此。
对于在控制台中隐藏 URL,您有什么建议?我完全不知道从哪里开始。
详细说明一下:用户在我的网站上单击“浏览文件”,然后单击“上传”。文件被传输到云存储。然后,我的网站从 cloudinary 获取图像 url,将 url 存储在我的数据库中,并将它们显示在用户个人资料的 div 框中。像这样的:
<div class="listing_img" style="background-image:url('.$img_url.');"></div>
其中 $img_url 是数据库中的一行。
有点像一个图像存储网站,但不完全是,人们不会来我的网站存储图像。 用户在任何阶段都不会看到他们的图像被发送到哪个 API url,除非他们当然在浏览器控制台中看到“img src=akdklasdjakl”。
我不确定这是否是正确的方法,但这似乎不是一个坏主意。
【问题讨论】:
-
这就是我的意思:
<div class="listing_img" style="background-image:url('.$img_url.');"></div>。 div内容为空,但控制台仍会显示url。 -
是的,完全正确。用户可以知道他们的图像存储在其他地方,但他们不应该知道确切的位置。
-
是的,我想是的,因为它是通过 JavaScript 或 Ajax 完成的。我不想透露它的原因是,例如,用户知道他们的图像将发送到
domain.com/folder/username,因此只需更改该值就可以很容易地将图像上传到另一个用户的文件夹。这可能有点问题,首先因为我使用文件夹结构来划分用户图像,还因为我更喜欢用户不知道正在使用哪个第三方服务,这只是给他们更多关于“哪个”网站的信息可以被黑客入侵/操纵。 -
如果图像存储在云服务器上并且您希望用户从那里下载它,您需要告诉客户端从哪里下载它(因为这是您想要它做的) .
-
不,这不是为了“支持或维持”任何东西,我的网站首先不是关于图像上传的。我正在使用第三方工具,因为我不想为了存储用户可能使用或可能不使用的图像(例如,个人资料图片)而使用一堆计算机。
标签: javascript php mysql image security