【问题标题】:sendToURL doesn't send to URL [duplicate]sendToURL 不发送到 URL [重复]
【发布时间】:2013-03-30 03:39:44
【问题描述】:

我按照 meta.stackoverflow 中的建议编辑了问题,以提高问题的质量以便更好地理解 :))

我正在使用 phpbb 3 并且刚刚下载了一个名为 Proxy Revealer 的 MOD,它主要用于检测和禁止 IP 地址,以下附加代码是 MOD 的一部分,如您所见,ActionScript 使用 sendToURL 方法传递 flash 变量到 PHP 端,它使用 _GET 方法获取值,但问题是这些值总是为 NULL,我使用 burpsuite 进行了一些研究,并在客户端的标头请求中看到了这些值,但从未在 URL 栏中执行,甚至没有披露过为什么它们是 NULL

  • 网址 = example.com/index.php
  • 请求标头 = index.php?value=3424124&another=32412342

如何在 PHP 变量中获取这些值,感谢您花时间阅读我的消息,祝您有美好的一天:))

import flash.display.LoaderInfo;
import flash.errors.*;
import flash.events.*;
import flash.net.sendToURL;
import flash.net.URLRequest;
import flash.net.XMLSocket;
import flash.system.Capabilities;
import flash.system.Security;
import flash.xml.*;

// Retrieve passed FlashVars
var dhost:String = root.loaderInfo.parameters.dhost;
var dport:Number = root.loaderInfo.parameters.dport;
var flash_url:String = root.loaderInfo.parameters.flash_url;
var ip:String = root.loaderInfo.parameters.ip;
var extra:String = root.loaderInfo.parameters.extra;
var user_agent:String = root.loaderInfo.parameters.user_agent;

// Retrieve policy file from our XMLSocket server to allow socket connections
Security.loadPolicyFile("xmlsocket://" + dhost + ":" + dport);

// Get Flash Player version
var version:String = Capabilities.version;

// Our probe.php URL and the query string concatenated
var myURL:String = flash_url + "?mode=flash&ip=" + ip + "&extra=" + extra;
myURL += "&version=" + escape(version) + "&user_agent=" + escape(user_agent);

// Socket connection code
var sock:XMLSocket = new XMLSocket();

sock.addEventListener(Event.CONNECT, connectHandler);
sock.addEventListener(DataEvent.DATA, dataHandler);

sock.connect(dhost,dport);

function connectHandler(event:Event):void {
    var xmlRequest:String = "<data><request>getmyip</request></data>";
    sock.send(new XML(xmlRequest));
}

function dataHandler(event:DataEvent):void {
    var myXML:XML = new XML(event.data);
    var myIP:String = myXML.ip[0];
    myURL += "&xml_ip=" + myIP;
    var request:URLRequest = new URLRequest(myURL);
    sendToURL(request);
    sock.close();
}

【问题讨论】:

  • 修改后不是@animuson

标签: php actionscript-3 apache http


【解决方案1】:

你见过http://php.net/manual/en/function.getallheaders.php 吗?不过似乎只适用于某些 Apache 设置。

【讨论】:

  • 从来没有和我一起工作过:(
  • 适用于我的笔记本电脑,但不适用于我的主服务器...我的笔记本电脑运行的是 PHP 5.4.6,我不确定它使用的是 mod_php 还是 FastCGI,但我的服务器正在运行PHP 5.3.3 并且肯定使用 FastCGI。文档说它只在 5.4.0 的 FastCGI 下可用。您运行的是哪个版本的 PHP,您知道您使用的是 FastCGI 还是 mod_php?
  • 我在设置自己的服务器时使用 php 5.1.6 和 FastCGI :))
  • 啊,是的,那么看起来 getallheaders() 对 FastCGI 中的 PHP 5.1.6 没有帮助。 =\
【解决方案2】:

试试这个代码

if(function_exists('headers_list')){
    $header = "Headers: ";
    foreach (headers_list() as $name => $value) {
        $header .= "$value ";
    }
}

或者试试

$headers = apache_request_headers();
foreach ($headers as $header => $value) {
    echo "$header: $value <br />\n";
}

【讨论】:

  • 只返回之前的地址?
猜你喜欢
  • 2022-11-21
  • 2018-03-27
  • 2014-07-28
  • 1970-01-01
  • 2014-10-17
  • 2020-06-20
  • 2016-10-13
  • 1970-01-01
  • 2015-01-14
相关资源
最近更新 更多