【问题标题】:Is there any way to hide the variables that are being passed to Flash by swfobject when someone views source?当有人查看源代码时,有什么方法可以隐藏 swfobject 传递给 Flash 的变量?
【发布时间】:2010-04-12 09:56:03
【问题描述】:

我有一些使用 swfobject 嵌入的 Flash swf,我向它们传递了一些变量,例如用户 ID。如何防止人们阅读这些变量?如果有人查看嵌入 swfs 的 php 页面的源代码,他们可以看到所有正在传递给 flash 的变量。有没有办法隐藏这些变量?还有什么其他方法可以做到这一点?我考虑过设置一个 ExternalInterface 并调用一个 javascript 函数将变量传递给 Flash - 这会有效地隐藏我发送的数据吗?

谢谢

【问题讨论】:

    标签: flash security swfobject externalinterface view-source


    【解决方案1】:

    您实际上无法隐藏数据。你只能让它更难找到。使用 firebug 或类似工具,人们总会发现,因为他们可以查看您的 JS 所做的事情以及您的应用程序发送的数据。你能做的最好的就是添加一些加密,但是使用反编译器,可以很容易地从 swf 中提取解密机制。

    如果您描述了一般问题(正在发送什么样的数据以及为什么/反对您想要保护它),也许我可以提供更具体的想法。

    编辑:这对我来说似乎是一个严重的安全漏洞。受限制的服务应仅授予经过适当身份验证的用户的访问权限。 flash 客户端不应该传递它的用户 ID。相反,会话(由登录创建)应该与用户相关联,从而允许识别。所以你的客户甚至永远不会知道它的用户 ID。它只会发送一个请求,PHP 会话将允许找出这个用户 ID 并提供相应的数据。

    【讨论】:

    • 谢谢,大部分数据与用户有关,它是一个用户 id 和一个组 id,允许 Flash 调用一个页面 (AMFPHP) 来查询数据库中属于该用户的图像然后从远程服务器加载图像。我还传递了这些图像位置的 IP 地址(此 IP 地址用于亚马逊网络服务,可能会更改,因此我不想硬编码)。我最担心有人可以手动(以某种方式)输入不同的用户 ID 并能够看到其他用户的材料。 Flash 可以访问 PHP 会话变量以检查传递的用户 id = 会话用户 id 吗?
    • 您好 Back2Dos,感谢您的回复,我在使用 PHP 会话存储用户 ID 时遇到的一个问题是 Flash 客户端有时会调用 2 个服务器,因此我需要使用会话集群之类的东西(快速 google 问题)、mCaching 等。我们的网络服务器位于一个主机上,而我们需要知道用户 ID 的另一台服务器位于 Amazon Web Services 上。听起来最简单的方法是在用户登录时在数据库中创建一个“会话”记录,并让两台服务器从该记录中读取用户 ID。您能提出任何替代解决方案吗?
    猜你喜欢
    • 2016-11-16
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    • 2012-07-05
    • 1970-01-01
    相关资源
    最近更新 更多