[英]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.