Flash到MySQL数据库的简单安全方式

时间:2008-12-29 20:10:19

标签: php mysql flash actionscript database-connection

任何简单但安全的脚本都可用于 Flash> MySQL DB 集成?我需要一些登录数据库。

PHP 交换变量既简单又容易,但显然不安全。

通过远程处理?我有Flash 8 remoting components installed和一些想法:idea-1idea-2

通过NetConnection?获得了一些潜在客户:lead-1lead-2

冷融合?有人有什么想法吗?


不太可能的解决方案:

  • 通过XML?任何人都知道如何使用XML连接数据库? (AS2或AS3)

  • 出于安全原因(安装在服务器根目录上的脚本),
  • AMF-PHP 是不可能的

  • Java Server ras将专门安装在服务器上。

编辑:加密应该使PHP解决方案更加可行,尽管只为高安全性登录数据库提供基本保护。 另请参阅: SO:123,Adobe:4

8 个答案:

答案 0 :(得分:2)

无论您使用Flash还是PHP,您仍然使用HTML表单技术/规范来执行GET / POST,因此使用Flash与使用PHP,Perl,CGI等一样安全(或不安全)

如果您希望在登录时获得某种程度的安全性,则应考虑为该网站获取SSL许可。

答案 1 :(得分:2)

查看AS3crypto - http://code.google.com/p/as3crypto/ - 这是一个很棒的加密库。

1)生成1024位(或更高,具体取决于您需要的安全性)RSA公钥/私钥。

2)将公钥存储在swf文件中(这样做是安全的,即使有人反编译你的swf)。

3)将您的私钥存储在服务器上的安全位置。

3)使用公钥和AS3crypto库,在将swf发送到服务器之前加密从swf发送的任何数据。

4)一旦数据到达服务器,用私钥解密,只有你有权访问。

提示 - 最好将时间散列到传输的数据中,以防止有人提交相同的加密数据以获取访问权。

答案 2 :(得分:1)

过去,我使用基于SSL的ASP.NET Web服务进行Flex->数据库登录等。通过https,Flash应该能够与任何网页进行通信,无论是ASP.NET,PHP还是或任何其他应用程序服务器。

您能更具体地了解“高安全性登录数据库”的要求吗?什么是理想的解决方案?

ColdFusion 8也适用于Linux,Macintosh和Solaris,尽管我自己从未使用过CF.

http://www.adobe.com/products/coldfusion/systemreqs/

答案 3 :(得分:1)

首先,如果您担心连接的安全性,请不要在其上发送密码:请始终使用它的哈希值。就个人而言,我从未在纯文本中保留密码的时间超过必要的时间。

其余的,基本上我在之前的回答中说过:在第一次“authenticate”调用中,我还会传递会话ID以便正常使用PHP。在服务器上,您在会话表中检查该ID,并验证包含数据的POST是否来自链接到该会话的IP。然后验证用户名和指定的哈希,如果所有这些都是正确的,那么您可以非常确定用户是他们所说的人。

关键是在PHP中使用session _....函数。 我确保在会话表中存储会话ID和匹配的IP(可以从 $ _ SERVER ['REMOTE_ADDR'] 获得)。这样,当applet调用您的服务器时,您可以检查sessionID和IP是否匹配,从而增加了一点额外的安全性。

无论如何,这些天没有什么是安全的,我也不是安全专家,因此有更好的解决方案。问题是:你愿意投入多少努力?

答案 4 :(得分:1)

Google代码上有一个项目,您可以通过TCP套接字连接http://code.google.com/p/assql/直接从swf影片连接到MySQL数据库。我从来没有尝试过这个,但听起来很有趣且非常不安全。

答案 5 :(得分:0)

Afaik直接通过ActionScript与MySQL服务器通信是不可能的(除非有人编写了一个实际上没有网络内容的软件包,但我还没有看过它)。

我是否也可以指出,您对“因PHP不安全”的评论并不准确? 当你真正从小程序中做所有事情时更糟糕的是:现在花生是反编译.SWF,然后它们甚至会为你的数据库提供登录数据。

我认为,正如Ristonj建议你最好使用URLRequest类。

我通常做的是将当前的php会话ID传递给applet,以便我可以在初始applet请求中包含此用户IP和用户IP。在服务器上,我检查会话表中的ip / session是否实际处于活动状态并匹配。如果是这样,用户会获得一种命令令牌,允许他执行请求,这反过来可以进行数据库更新。

如果您通过SSL连接完成所有操作,那么您就非常安全了。 是的,你必须在服务器上存储PHP脚本,但是获取这些脚本比仅仅能够反编译applet并提取所有内容更难:)

我喜欢将所有程序逻辑仅保留在服务器上,而不是在applet中。

答案 6 :(得分:0)

基本上,Flash必须将用户名+密码详细信息传递给PHP脚本进行身份验证...稍后PHP将使用GET / POST将私有详细信息发送回Flash。

我需要一些安全措施来确保坏人无法访问这些私人信息。

编辑: PHP> MySQL数据库似乎足够安全。它只是需要一些的Flash> PHP部分:

  • 加密(哈希?)
  • 安全连接(通过SSL的HTTPS或HTTP?)
  • 或更好,更直接的MySQL DB(Remoting?)方法。

答案 7 :(得分:0)

直接从AS3访问MySQL - 请查看: http://code.google.com/p/assql/