簡體   English   中英

我如何知道請求是否來自Flash swf?

[英]How do i know if the request came from flash swf?

我有一個用flash開發的應用程序,我需要訪問一些php文件。 所以如果訪問來自swf,php文件會返回一些數據。 如何識別請求是否來自閃存?

沒有將get / post變量傳遞給php。

用戶代理/ Referer可能。 請記住,請求很容易被偽造

我認為沒有一種可靠的方法來檢測Flash是否提出了請求。 Flash不允許您設置用戶代理,並且對可以設置的標頭有很多限制。

請查看http://help.adobe.com/en_US/AS3LCR/Flash_10.0/flash/net/URLRequestHeader.html

正如John Ballinger建議的那樣,您可以使用此設置自己的標頭,並在PHP頁面中查找該標頭。

這是對John Ballinger的回答的回應:

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestHeader;

var loader:URLLoader = new URLLoader();
var request:URLRequest = new URLRequest("http://www.mydomain.com/myapp.php");
var header:URLRequestHeader = new URLRequestHeader("custom-header-name", "value");
request.requestHeaders.push(header);
try {
    loader.load(request);
} catch (error:Error) {
    trace("Unable to load requested document.");
}

您還必須確保修改crossdomain.xml以允許http標頭,如下所示:

<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
    <allow-access-from domain="*.mydomain.com" />
    <allow-http-request-headers-from domain="*.mydomain.com" headers="*" />
</cross-domain-policy>

您無法分辨它是來自閃存,因為閃存實際上使用瀏覽器來執行請求。

但是在您的Flash請求中,您可以將自己的標頭添加到HTTP請求中(您可以在Flash中輕松完成此操作)。 這樣您就可以看到請求是否來自Flash。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM