是否有一种安全的方法将变量从php发送到flash

是否有一种安全的方法将变量从php发送到flash,php,flash,security,Php,Flash,Security,我首先要说的是,我对flash和php都比较陌生 目前我有一个带有用户登录名和密码(php)的站点设置。成功登录--(php查询到mysql)后,用户登录,用户名和一些其他变量存储为会话变量 我想做的是用flash创建一个在线测验。测验将嵌入网页中。它需要从会话变量中获取用户名并将其传递给flash,以便知道哪个帐户正在使用测验。是否可以将用户名安全地传递给flash程序?如果是,我应该在哪里查找更多信息 谢谢有方法将数据“从PHP”发送到Flash,但没有安全的方法 要将任何数据“发送”到Fl

我首先要说的是,我对flash和php都比较陌生

目前我有一个带有用户登录名和密码(php)的站点设置。成功登录--(php查询到mysql)后,用户登录,用户名和一些其他变量存储为会话变量

我想做的是用flash创建一个在线测验。测验将嵌入网页中。它需要从会话变量中获取用户名并将其传递给flash,以便知道哪个帐户正在使用测验。是否可以将用户名安全地传递给flash程序?如果是,我应该在哪里查找更多信息


谢谢

方法将数据“从PHP”发送到Flash,但没有安全的方法

要将任何数据“发送”到Flash,您需要

  • 将其打印在与Flash元素相同的页面上(或直接打印到显示它的元素中)。但是,人们可以编辑您打印给他们的任何信息,并使用它来处理发送到Flash的数据

  • 让Flash发出HTTP(S)请求,并从中获取数据。这也行不通,因为Flash文档可以反编译,或者数据可以被截获(甚至伪造)


方法将数据“从PHP”发送到Flash,但没有安全的方法

要将任何数据“发送”到Flash,您需要

  • 将其打印在与Flash元素相同的页面上(或直接打印到显示它的元素中)。但是,人们可以编辑您打印给他们的任何信息,并使用它来处理发送到Flash的数据

  • 让Flash发出HTTP(S)请求,并从中获取数据。这也行不通,因为Flash文档可以反编译,或者数据可以被截获(甚至伪造)


    • Flash支持一种叫做(AMF)的东西,这是一种协议,Flash应用程序可以使用该协议调用服务器上的方法并接收响应

      AMF是一种二进制协议,服务器端支持多种语言,包括PHP(和许多PHP框架)。我怀疑,如果您的Flash应用程序可以发出HTTPS请求,那么它应该能够通过HTTPS发出AMF请求

      但是。。。“安全”

      如果AMF数据可以在线路上被嗅探,它可以被反序列化,就像明文一样。flashplugin是一个封闭源代码的应用程序,所以你不能检查源代码,然后自己编译,以确保它没有做任何你没有授权的事情

      你如何定义“安全”?您希望防范哪种攻击或信息泄漏

      对于您的应用程序,一种策略可能是让浏览器对用户进行身份验证并建立一个PHP会话。然后在加载会话cookie值时将其作为变量传递给Flash应用程序。然后,您的Flash应用程序可以创建自己的HTTP/HTTPS请求,其中包括cookie头,从而将该请求标识为已建立会话的一部分

      在我看来,应该有一种更简单的方法来处理这个问题,但我对Flash的了解也很有限


      第二个评论,您应该考虑不使用Flash来实现这一点。

      Flash包括对一个被称为(AMF)的东西的支持,这是Flash应用程序可以用来调用服务器上的方法并接收响应的协议。 AMF是一种二进制协议,服务器端支持多种语言,包括PHP(和许多PHP框架)。我怀疑,如果您的Flash应用程序可以发出HTTPS请求,那么它应该能够通过HTTPS发出AMF请求

      但是。。。“安全”

      如果AMF数据可以在线路上被嗅探,它可以被反序列化,就像明文一样。flashplugin是一个封闭源代码的应用程序,所以你不能检查源代码,然后自己编译,以确保它没有做任何你没有授权的事情

      你如何定义“安全”?您希望防范哪种攻击或信息泄漏

      对于您的应用程序,一种策略可能是让浏览器对用户进行身份验证并建立一个PHP会话。然后在加载会话cookie值时将其作为变量传递给Flash应用程序。然后,您的Flash应用程序可以创建自己的HTTP/HTTPS请求,其中包括cookie头,从而将该请求标识为已建立会话的一部分

      在我看来,应该有一种更简单的方法来处理这个问题,但我对Flash的了解也很有限


      第二次评论,你应该考虑不使用Flash来进行这项努力。

      < P>除非它没有被注意到:你想要阻止什么样的攻击,你准备付出多少?< /P> 顺序相反;为了让您的服务器通过HTTPS提供页面服务,您需要从某个授权机构购买证书。这不是免费服务,它将过期。使用加密连接服务页面会按时间和内存对服务器征税,需要对数据和流量进行编码(几乎是基本大小的两倍)。这也使得嵌入其他人的内容(如广告、来自其他网站的图像)成为问题,因为并非所有的广告提供商都会通过安全和不安全的连接提供广告。如果你打算让你的网站从展示广告中获利,这可能是一个潜在的止损点

      攻击种类:你在保护谁,对抗谁?您是否担心Flash会以某种方式帮助潜在的攻击者暴露您的应用程序逻辑,从而使其能够利用您的系统弱点?例如,如果您使用Flash将内容上载到服务器,或者在某些情况下允许使用它加载服务器的代码,这是可能的

      或者你是在试图保护用户免受其他用户的攻击,就像一个用户可以窃听这些东西一样