繁体   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