我需要從Flash向本地代理腳本發出請求時爲Referer頭設置一個值。按照這個問題的建議:Facebook Proxy Loader Security,我需要檢查HTTP_REFERER以測試流量是否來自我自己的域。問題是,當使用像下面的代碼一樣的加載器時,不會發送Referer頭文件。通過加載程序加載的HTTP Referer()
package com.utils.loaders {
import flash.net.URLVariables;
import flash.net.URLRequest;
import flash.display.Loader;
public class FacebookProxyLoader extends Loader
{
protected static const PROXY_SCRIPT :String = "includes/facebookproxyloader.php";
public function FacebookProxyLoader():void
{
}
public function proxyLoad(url:String):void
{
var request:URLRequest = new URLRequest(PROXY_SCRIPT);
var variables:URLVariables = new URLVariables();
variables['path'] = url;
request.data = variables;
super.load(request);
}
}
}
根據閃存文檔:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/net/URLRequestHeader.html只存在於Flash Player中的HTTP頭的支持非常有限,而使用Referer是禁止的。除了我的代理檢查$_SERVER['HTTP_REFERER']
爲空之外,我還有什麼可以做的嗎? (這似乎是一個相當大的安全漏洞)
這可能是在一個最後期限內對低級AS3開發者的一點推動!不過謝謝。 – shanethehat 2011-05-20 09:39:10