javascript - 如何安全地从后端发送图像以在前端 HTML 中显示?

标签 javascript image security frontend pre-signed-url

我正在开发一个Web应用程序,包括后端服务器和前端SPA。 当用户通过身份验证时,他必须能够在浏览器中可视化 secret 图像(之前上传的)。我想知道最好的安全方法。

一旦用户通过后端(JWT)验证,后端如何安全地将图像发送给用户进行显示?

我想到了两种可能的方法:

  1. 使用带超时功能的签名 URL。这也意味着任何在超时时间内找到此公共(public) URL 的人都可以访问 secret 图像。但“google photos”/facebook 似乎就是这样工作的。

  2. 在其余调用中以 Base64 发送图像。这也意味着,如果我们在公共(public)场所,通话可以记录在任何服务器上,并且多年后仍然可以访问。

有什么建议吗?!

最佳答案

您可以将 token (甚至可能是 JWT)附加到图像 URL src,并在提供图像之前在后端检查此 token 。 img 标签看起来像这样:

<img src="https://path-to-image?token=securetoken">

注意,我假设您使用 https(而不是 http)作为 src url,因此无法拦截 token 。

关于javascript - 如何安全地从后端发送图像以在前端 HTML 中显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58019125/

相关文章:

javascript - 使用 JavaScript 在每一行中查找模式

jquery - 我的图像保持垂直,而不是水平

c# - 如何以编程方式使 pdf 不可打印?

swift - 快速将 UIImage 推送到下一个 View Controller

android - 阻止其他 android 应用程序识别我的应用程序的方法?

javascript - 如何安全地记录用户统计信息

javascript - jquery 在处理时显示微调器

javascript - 我怎样才能在不移动下面的元素的情况下注入(inject)一堆图像

javascript - jquery 获取元素之间的所有内容

c# - 如何获取上传视频的第一帧