2008年4月28日

Flash player 9.0.124.0的新安全性限制

這個blog設立也很久了,一篇文章都沒寫。就拿這一篇開頭吧!

今天犇亞有人通知說,update了新的flash player以後,原本正常的功能就消失了。在網站上找了一下,發現了這一篇:

http://www.adobe.com/devnet/flashplayer/articles/flash_player9_security_update.html

原來改了安全性限制。可是看了半天,還是不知道到底在說什麼。更奇怪的是:WebService不作用就算了,有些HttpService可以動,有些又不行。用sniffer看了半天,才發現:Http GET可以運作,但是Http Post不能運作。這篇文章裡面講到安全性限制來自於addRequestHeader這個幾乎從來沒用過的東西。我知道WebService有用到SOAPAction這個Header,但是想了半天也不知道為什麼Get跟Post會有差,只好回去sniffer找蛛絲馬跡...

結果在Post的時候,發現有一個奇怪的字眼會出現在Request header裡:flex-http-service。只要是HttpService用Post的時候,這東西就會自動增加在Header裡,想必就是flex幫我們用addRequestHeader做出來的,於是把這個東西加進去crossdomain.xml裡,如下面:

<cross-domain-policy>
<allow-access-from domain="localhost" secure="false"/>
<allow-http-request-headers-from domain="localhost" headers="flex-http-service,SOAPAction"/>
</cross-domain-policy>

事情就解決啦...

以上是Flex 1.5的HttpService生出的麻煩,2.0不知道還會不會自動增加。過幾天有空再試。

沒有留言:

張貼留言