任何简单但安全的脚本都可用于 Flash> MySQL DB 集成?我需要一些登录数据库。
用 PHP 交换变量既简单又容易,但显然不安全。
通过远程处理?我有Flash 8 remoting components installed和一些想法:idea-1,idea-2。
通过NetConnection?获得了一些潜在客户:lead-1,lead-2。
冷融合?有人有什么想法吗?
不太可能的解决方案:
通过XML?任何人都知道如何使用XML连接数据库? (AS2或AS3)
AMF-PHP 是不可能的
编辑:加密应该使PHP解决方案更加可行,尽管只为高安全性登录数据库提供基本保护。 另请参阅: SO:1,2,3,Adobe:4。
答案 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.
答案 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部分:
答案 7 :(得分:0)
直接从AS3访问MySQL - 请查看: http://code.google.com/p/assql/