2009-04-08 51 views
3

我需要能夠檢測到Flash是否是ASP.NET服務請求的發起者。原因是當響應狀態代碼不是200時,Flash無法處理SOAP消息。但是,我允許異常通過SOAP Web服務冒泡,因此SOAP服務器故障的狀態代碼爲500。在Flash 10之前,我能夠檢查referrer屬性,如果以.SWF結尾,我將狀態代碼更改爲200,以便我們的Flex應用程序可以適當地處理SOAP消息。但自Flash 10推出後,不再發送引用者。我想使用x-flash-version頭文件,但似乎只在使用IE而不是FF時發送。如何可靠地檢測Flash是否是服務請求的發起者?

這使我想到我的問題:如何可靠地檢測Flash是否是服務請求的發起者?

回答

3

不能可靠做到這一點 - 畢竟,它可能是一個代理,或者可能有人窺探您的Flash組件的交通工作,如何重用你的API沒有任何限制的Flash版本不會有。

對於區分輸出的基本健全性檢查,您可以簡單地添加一個標誌來說「Flash API版本請」;但是對於所有的HTTP通信來說,僞造任何需要的東西都是相對微不足道的。

+0

我們認爲,由於我們無法可靠地檢測到Flash是否是請求的發起者,我們沒有花費更多的精力來解決這個問題。 – 2009-08-28 12:50:56

2

http://domain.com/path/to/target?flash=true怎麼樣?如果您所做的只是更改api或返回不同的錯誤,則不需要安全的檢測方法。

編輯:請注意,這絕對不是「可靠的」,但你真的需要一個可靠的檢測方法或只是工作?這有效,它不安全,如果你需要它是安全的,你做錯了什麼,因爲不可能知道客戶端實際上在使用什麼。

1

您可以檢查用戶代理(但它可以被僞造),Flash使用類似「的Adobe Flash」

+0

其實我在這裏做了一個flash電影做一個提供瀏覽器用戶代理的http請求。 – cmc 2011-07-19 20:36:26

0

最安全的方式(的呈現易選項)對正則表達式匹配引薦網址這將有.swf在裏面。

這將是一個很難欺騙比查詢字符串/形式參數& flash = true。使用黑客工具可以發送錯誤的HTTP頭(引用者),但這顯然是可以破解的,但是在所提供的選項之外,它會花費最多的努力。

相關問題