在不购买FlexBuilder的情况下尝试学习和编写Flex 3应用程序是否现实?由于SDK和BlazeDS是开源的,因此在没有Flex Builder的情况下开发技术似乎是可行的,但它有多么现实.
我想测试Flex,但不想进入我依赖于购买FlexBuilder的情况(至少在我对使用该技术向我的雇主购买的技术充满信心和能力之前).
我现在正在试验,所以我花了很长时间,我的Windows机器上的试用许可证已经过期了.Linux也是我的主要开发平台,只有一个可用于Linux的alpha版本.
我发现的大多数文档似乎都使用Flex Builder.
也许我应该使用Laszlo ......
我是Flex的新手.
我是否可以单独使用Flex SDK实际开发中等复杂的应用程序,还是需要Flex Builder?
另外,除了SDK之外,我还需要什么才能开始?
谢谢你的帮助.
我正在为私有vBulletin站点构建Flex小部件,而Flex小部件需要访问vBulletin服务器上的XML文件才能显示数据.
出于安全原因,XML URL需要在来自Flex的URL请求中传递的bbsessionhash cookie中具有值.Flex小部件将嵌入用户登录的私有区域,因此Flex请求将来自cookie所在的同一网站.
有没有办法直接在Flex中访问cookie?我宁愿不使用ExternalInterface从JavaScript中获取cookie数据,因为它可能会有点混乱(模板是由完全不同的开发团队开发的).
我刚刚代表SFDC对Deloitte的安全审计工作进行了抨击.基本上我们使用flex并通过AMF进行通信.我们使用FluorineFX(而不是LCDS和Blaze).我们被告知,因为AMF响应没有编码,有人可以操纵AMF参数并插入Javascript,这是一个XSS漏洞.我正在努力理解AMF响应如何回复,这可以回应在错误消息中传递的JS,可以由浏览器或其他任何事情执行.我对使用HTML和JS的XSS非常有经验,但看到它被AMF标记有点意外.我与FluorineFx团队保持联系,他们也很困惑.
我很惊讶地看到AMF库对响应数据进行编码,Fluorine肯定没有.看起来像PortSwigger和IBM AppScan这样的安全应用程序在他们的工具箱中包含了这种类型的测试.您是否使用AMF遇到此漏洞并且能解释XSS问题如何表现出来?只是好奇.如果存在争论或者修补漏洞,我需要争论我的方法.考虑到使用Flex的AMF,我认为您可能有一些见解.
附加信息 ...
所以来自实际供应商PortSwigger的更多信息.我向他们提出了问题,网,网,他们承认这种类型的攻击非常复杂.最初他们将此归类为高严重性安全问题,但我认为他们的调整现在正在发生变化.我以为我会发布他们回复的内容,因为我觉得这个观点很有意思.
---来自PortSwigger的问题---
谢谢你的留言.我认为答案是这可能是一个漏洞,但开发并非易事.
你是对的,当AMF客户端使用响应时(除非它做了一些愚蠢的事情),问题不会出现,而是攻击者可以设计出浏览器使用响应的情况.大多数浏览器都会忽略HTTP Content-Type标头,并会查看实际的响应内容,如果它看起来像HTML一样会很乐意处理它.从历史上看,人们已经存在大量攻击,其中人们将HTML/JS内容嵌入到其他响应格式(XML,图像,其他应用程序内容)中,这是由浏览器执行的.
所以问题不在于响应的格式,而在于生成它所需的请求格式.攻击者设计包含有效AMF消息的跨域请求并非易事.XML请求/响应也会出现类似的问题,其中包含类似XSS的行为.当然可以创建一个有效的XML响应,它被浏览器视为HTML,但挑战在于如何在HTTP体内跨域发送原始XML.这不能使用标准HTML表单来完成,因此攻击者需要找到另一种客户端技术或浏览器怪癖来执行此操作.从历史上看,这样的事情在不同的时间都是可能的,直到它们被浏览器/插件供应商修复.我现在还没有意识到任何允许它的东西.
简而言之,这是一种理论上的攻击,它取决于您可以完全忽略的风险配置文件或阻止使用服务器端输入验证,或者通过在服务器上编码输出并在客户端上再次解码.
我认为Burp应该将AMF请求格式标记为缓解此问题,并将影响降级为低 - 我将解决这个问题.
希望有所帮助.
干杯PortSwigger
---更多关于审计的信息---
portSwigger所做的并不一定是二进制有效负载的混乱,他们所做的是混淆了发布到处理程序以指导请求的实际AMF参数.例如,这里是审计的一个片段,它显示了AMF对请求的部分响应......
HTTP/1.1 200 OK
Server: Microsoft-IIS/6.0
X-Powered-By: ASP.NET
X-AspNet-Version: 2.0.50727
P3P: CP="CAO PSA OUR"
Content-Type: application/x-amf
Vary: Accept-Encoding
Expires: Tue, 06 Apr 2010 18:02:10 GMT
Date: Tue, 06 Apr 2010 18:02:10 GMT
Connection: keep-alive
Content-Length: 2595
......../7/onStatus.......
.SIflex.messaging.messages.ErrorMessage.faultCode.faultString
.faultDetail.rootCause.extendedData.correlationId.clientId.destination
.messageId.timestamp.timeToLive body.headers.#Server.Processing..kFailed
to locate the requested type
com.Analytics.ca.Services.XXX5c2ce<script>alert(1)</script>9ccff0bda62..
....I506E8A27-8CD0-598D-FF6E-D4490E3DA69F.Id95ab281-d83b-4beb-abff-c668b9fd42d5
..fluorine.I04165c8e-f878-447f-a19a-a08cbb7def2a.A.q..@............
. DSId.Aeb5eeabcbc1d4d3284cbcc7924451711.../8/onRes
...[SNIP]...
Run Code Online (Sandbox Code Playgroud)
注意那里的"alert"脚本......他们所做的是将一些脚本附加JS附加到传递的参数之一,其中包含要调用的方法即'com.Analytics.ca.Services.XXX'.通过这样做,JS返回了一条错误消息,但是有很多事情要发生在JS上以便接近执行.似乎是间接威胁.
- 安全审计员的最新观点 -
我和更大的团队讨论过,我们都认为这是一次有效的攻击.正如PortSwigger在他的第一段中提到的那样,理论上,因为你将内容类型设置为x-amf,并希望它不会在浏览器中呈现,大多数浏览器都会忽略此请求并无论如何呈现它.我认为供应商在很大程度上依赖于内容类型设置的事实; 然而,像IE和某些版本的Safari这样的流行浏览器会忽略这一点.
通过利用CSRF或任何其他形式的发起XSS攻击可以轻松触发攻击.
Flex开发人员应该记住哪些主要关键点是为了提高Flex应用程序的性能?我想到的是:
在开发Flex3/Flex4/AIR应用程序时,您尝试遵循哪些关键指导原则以提高其性能?
你能推荐一些好的替代Flex IDE吗?我对免费版本感兴趣,但我也会考虑付费的.
谢谢
建议使用哪些工具(最好是开源)来在基于FLEX的Web应用程序上驱动自动化测试套件?同样具有内置驱动Web服务功能的工具也不错.
我正在通过Flex在AIR中开发一个应用程序,但我没有看到我在哪里遇到SQLite(我已经习惯了MySQL).参数有效,但仅限于某些情况.这部分是针对sql注入的内置卫生系统吗?谢谢你的帮助!
作品:
源码
"INSERT:Fields FROM Category",其中参数为:Fields ="*"
AS3
var statement:SQLStatement = new SQLStatement();
statement.connection = connection;
statement.text = "INSERT :Fields FROM Category";
statement.parameters[":Fields"] = "*";
statement.execute;
Run Code Online (Sandbox Code Playgroud)
不起作用(":"表中的SQL语法错误):
源码
"INSERT:Fields FROM:Table",其中参数为:Fields ="*"和:Table ="Category"
AS3
var statement:SQLStatement = new SQLStatement();
statement.connection = connection;
statement.text = "INSERT :Fields FROM :Table";
statement.parameters[":Fields"] = "*";
statement.parameters[":Table"] = "Category";
statement.execute;
Run Code Online (Sandbox Code Playgroud) 我已经尝试了一切,防火墙,重新安装等等.无论我做什么,我都无法让调试器连接.
我只是用Flex和Actionscript编写一个简单的Air应用程序.但任何类型的应用程序上的任何类型的调试都不起作用.我收到这条消息
Flash Builder调试器无法连接到正在运行的应用程序.

然后,当我再次尝试时,我得到这个消息
无法识别的Windows套接字错误:0:JVM_Bind

没有调试运行程序工作正常.
我试图理解Flash平台的整个混乱(主要是因为我理解被抛出的术语)到目前为止,我还无法弄清楚AIR和Flex SDK的确切关系.在没有真正查看SDK的情况下,我的理解是AIR可以让您开发Flash(即ActionScript,显然也是JavaScript/HTML)应用程序,这些应用程序可以由AIR运行时运行而无需浏览器(例如纯桌面或智能手机应用程序).Flex SDK似乎是类和其他API(类似于JavaFX?)的集合,以扩展"标准"Flash库.
现在,我已经下载了两个SDK的最新版本,显然,它并不那么简单.所以,首先我查看了AIR SDK(http://www.adobe.com/devnet/air/air-sdk-download.html,v3.4截至目前).据我所知,"adt"实用程序是AIR的主要部分,可以让您打包已完成的应用程序.但是,我不确定AIR SDK是否实际包含一个编译器 - 假设您有一堆ActionScript .as文件,并希望使用AIR SDK将它们转换为.swf或.air文件,这是否可能?
不幸的是,Flex SDK(http://www.adobe.com/devnet/flex/flex-sdk-download.html,v4.6截至目前)无助于混淆.它确实包括编译器和其他工具,但在其"bin"文件夹中,我还可以找到"adt"和"adl" - AIR工具!更重要的是,它还具有"AIR SDK license.pdf"和"AIR SDK readme.txt"文件; 从这些方面来看,Flex SDK似乎包含一些旧版本的AIR SDK版本2.
为了让事情更加混乱,我还在Adobe的网站上找到了"Flex和AIR®SDK的组合版本(Flex SDK 4.6.0.23201和AIR 3.4.0.2540 SDK)"(http://gaming.adobe.com/getstarted /).似乎这不仅仅是通过将AIR 3.4文件复制到Flex 4.6文件来创建的,而是将另一个项目添加到列表中.
所以,基本上,我想知道这两个(三个?)SDK之间的区别.我需要Flex实用程序来编译吗?为什么"纯"Flex SDK包含AIR的部分(?)?我可以将任何版本的AIR SDK复制到Flex SDK中,以便与FlashDevelop一起使用吗?
apache-flex ×10
air ×4
flexbuilder ×3
flash ×2
flex4 ×2
amf ×1
cookies ×1
debugging ×1
flashdevelop ×1
flex3 ×1
fluorinefx ×1
ide ×1
performance ×1
sdk ×1
security ×1
session ×1
sqlite ×1
testing ×1
vbulletin ×1
web-services ×1
xss ×1