【问题标题】:Whats a valid strategy for a secure image upload from a flash client?从 Flash 客户端安全上传图片的有效策略是什么?
【发布时间】:2010-04-27 01:08:41
【问题描述】:

我正在创建一个 Flash 应用程序,它将图像发布到一个 url 以便稍后保存到磁盘/显示器。我想知道有什么建议的策略可以使这个足够安全,以便验证上传来自应用程序,而不仅仅是一些随机形式的帖子。

检查引用位置是否足够可靠,意识到我不需要防弹安全性,或者设置身份验证标头是一个更好的策略,即使从我所读的内容来看它似乎不可靠。

应用程序和服务器脚本将驻留在同一个域中并且在 java 中 - 有没有办法检查“会话”或类似的东西?

我的另一个想法是某种简单的散列密钥类型系统,我可以将密钥硬编码到闪存应用程序中,并基于此将某些内容传递给服务器 - 服务器也将知道这个密钥并能够验证如果传递的值是基于此的?

感谢您的任何建议,尤其是任何示例-我在这方面很天真-b

该应用是公共应用,因此无法对用户进行身份验证。经过更多研究,我正在考虑在两端使用硬编码盐键,然后发送 base64 编码图像字节数组 + 盐的 MD5 哈希以在服务器端进行匹配。对这个策略有什么想法吗?

【问题讨论】:

    标签: flash security actionscript authentication


    【解决方案1】:

    您的问题可以概括为“我如何确定图像是通过我的(闪存)应用程序上传的?”。答案是,不能。无论您做什么,有决心的人都可以对您的应用程序进行逆向工程或查看 http 流量,然后使用该信息创建另一个客户端(applet/silverlight/html 表单/独立程序)以将文件上传到服务器。充其量,您可以模糊不清以使事情变得困难。但这不是安全。

    相反,您应该问“我如何确定图片是由授权人上传的?”。这个是可以的。用户必须通过 https 进行身份验证,然后上传文件。阅读OWASPs guide to session management,了解如何解决此问题的更多信息。

    【讨论】:

    • 嗨 - 感谢您的回复。我意识到我永远无法真正保护应用程序,而且这不是必需的 - 我试图通过麻烦实现一个小级别的安全性,以便服务器端不只是保存它呈现的任何图像。该应用程序是一个公共应用程序,因此不能对用户进行身份验证。经过更多研究后,我正在考虑在两端使用硬编码盐键,然后发送 base64 编码图像字节数组 + 盐的 MD5 散列以在服务器端进行匹配。对这个策略有什么想法吗?
    • 编码图像数据加上盐值并将其作为“挑战”发送听起来是一个不错的选择,考虑到您的要求,并且对于客户端和服务器来说很容易。对于 AS 端的 MD5,您可以使用这些库中的任何一个(当然还有其他库,但这些是标准的):code.google.com/p/as3corelibcode.google.com/p/as3crypto
    猜你喜欢
    • 2010-09-14
    • 1970-01-01
    • 2010-09-30
    • 2019-01-15
    • 2018-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多