保护传递给经过身份验证的用户的嵌入式图像的方法?

时间:2015-07-04 17:36:45

标签: image security authentication

作为应用程序的一部分,我的用户可以使用嵌入的图像/文件/文本等创建文档。查看和编辑此内容需要用户登录。目前,图像和文件作为永久链接传递,如果这些任何未经过身份验证的用户都可以永久访问这些链接。

我想让这些文件安全。我最初的想法是使用登录令牌和用户的ID来检查他们是否有访问权限,如果他们这样做,则只传递文件。但后来我开始研究它,似乎最实际的解决方案是生成一个将在未来某个时候到期的链接。这不会消除未经身份验证的访问,但可能会减少它。

想到的问题是:

  • 是否有一个共同的方法或一些选项如何实施?

    • 我看过使用了有效期的返回网址
    • 谷歌文档似乎为它的嵌入式图像做了更复杂的事情,但我不知道是什么
    • 其他?
  • 基本设计要点?

  • 每个人的优点/缺点?

1 个答案:

答案 0 :(得分:3)

是的,它减少了对固定时间的身份验证访问,但理论上它提供了未经身份验证的访问。因此,安全专业人员将声称它没有身份验证。这种定时到期链接通常用于防止一次未经身份验证的访问,如密码重置(以及与时间无关的过期令牌)。

你的目标是什么?你想从谁那里保护数据?是否已经拥有文件访问权限并且您希望限制提供到期时间的用户?从这个问题来看,您需要保护对每个人都有文本和嵌入图像的文件/文档的访问。你对定时到期设计是正确的。它不保证您对文档的身份验证和完整性,如果它是通过非安全的HTTP,它甚至不会为您提供潜在对手的文档的完整性。

您可以通过HTTPS使用Cookie(安全Cookie)。只要用户拥有未过期的cookie,就允许访问文件/文档。如果您要在前面使用反向代理的多个框中托管解决方案,则cookie方法需要分布式cookie管理。虽然跨站点脚本是一种威胁,但大多数主要的Web应用程序提供商仍在使用基于cookie的解决方案。请注意,cookie会破坏网络应用程序的REST性质。

另一种方法(类似于cookie)是生成绑定到用户/文档的经过身份验证的令牌,该用户/文档在生成令牌时可以访问N次尝试一段时间。必须通过HTTPS使用此方法以避免不想要的侦听器。

一个不断变化的链接管理起来非常昂贵,并且随着时间的推移不可扩展,因为管理状态太多,而应用程序崩溃使其成本更高。如果您已经实施了cookie管理或者您有一个应用程序实例需要处理,那么重定向到身份验证是一个安全的选择。

或者您可以HTTP digest authentication提供您的框架支持它,这样您就不必担心cookie-hell了。请注意,您可能需要根据您的用例编写一些客户端Java脚本。