从Flex执行JavaScript:这个JavaScript函数危险吗?

从Flex执行JavaScript:这个JavaScript函数危险吗?,javascript,apache-flex,exploit,Javascript,Apache Flex,Exploit,我有一个flex应用程序,它需要生成和执行JavaScript的能力。当我这么说的时候,我的意思是我需要执行我在Flex应用程序中创建的原始JavaScript(而不仅仅是现有的JavaScript方法) 我目前通过公开以下JavaScript方法来实现这一点: function doScript(js){ eval(js);} 然后,我可以在Flex中执行类似的操作(注意:我正在执行的操作比真实Flex应用程序中的警报框更重要): 我的问题是,这是否会带来任何安全风险,我假设不会,因为Fle

我有一个flex应用程序,它需要生成和执行JavaScript的能力。当我这么说的时候,我的意思是我需要执行我在Flex应用程序中创建的原始JavaScript(而不仅仅是现有的JavaScript方法)

我目前通过公开以下JavaScript方法来实现这一点:

function doScript(js){ eval(js);}
然后,我可以在Flex中执行类似的操作(注意:我正在执行的操作比真实Flex应用程序中的警报框更重要):

我的问题是,这是否会带来任何安全风险,我假设不会,因为Flex和JasvaScript都在客户端运行


有更好的方法吗?

据我所知,我肯定不是黑客,你完全没问题。真的,如果有人想利用你的代码,他们可以在客户端利用你的代码,但我不知道他们如何使用javascript(除非你使用服务器端javascript)利用你的服务器端代码。如果这里引入了一个安全漏洞,我看不出来。

这本身并不危险,但当您将任何用户提供的数据传递到函数中时,就已经成熟,可以进行代码注入攻击。这是令人担忧的,也是我应该避免的。我认为更好的方法是只公开您所需的功能,而不是更多。

不需要JavaScript函数,
ExternalInterface
的第一个参数可以是任何JavaScript代码,它不必是函数名(文档中这么说,但这是错误的)

试试这个:

ExternalInterface.call("alert('hello')");

还要记住,脚本操作由语句中的“AllowScriptAccess”标记控制。如果web页面不需要这些操作,则不应允许脚本调用

ExternalInterface.call("alert('hello')");
ExternalInterface.call("eval", "alert('hello');");