我正在使用uploadify上传图片,但正如我很快意识到的那样,SWF对象与浏览器不共享同一会话。
我认为我需要会话的原因是为了确保“黑客”无法以其他用户的名义上传图像,或者覆盖其他用户的图像。我希望每张图片都是100%私有的上传者
以下是我看到的选项
- 将会话ID与上传
一起添加到请求中
-
使用一些加密技术
- 生成随机但难以伪造的图片ID
(例如,签署使用用户ID和密钥的令牌服务器端+随机UUID,
- 而不是将其保存在将用户标识符映射到该标记的表中(标记是图像标识)
- 然后将其传递给用户界面,
- SWF对象会将此令牌传递给服务器,我可以在服务器上验证它是否来自服务器并且未被用户篡改
- 然后在表中查找该标记,使用该标记将图像字节保存在占位符下。 (我需要希望这个令牌永远是全球唯一的,我不确定100%在统计上是真的,或者是它?如果我有一个万亿复制图像ID,我可能无法上传和强迫用户再试一次,对吗?
-
其他一些我没想到的更简单的选项(例如非SWF解决方案,例如ajax解决方案?或者只是忘记进度条,它不值得,用我们当前的带宽,大多数用户甚至都不会看到它)
-
只是使用一个GUID,很难猜测,如果有人设法猜测另一个用户的GUID(例如会话ID),而不是让他有覆盖别人的形象的乐趣,那并不是他们偷了他们的信用卡右
醇>
问题
- 我可以使用选项1吗?安全吗?
- 如果没有,那么选项2好吗?是太多还是太少?是重新发明轮子?是否有更简单的方法来获得无会话安全图像上传,证明发件人无法从客户端伪造?
- 或许有一个AJAX解决方案,不需要SWF进度条?