2012-05-01 79 views
0

我有一个as3脚本,用查询字符串加载PHP脚本的urlrequest,我不确定它是否正常工作。这个PHP脚本是否正确?

AS3:

userLoad=new URLLoader; 
userReq=new URLRequest("http://users/redirect.php?goto=u"+meFB+"/char.xml"); 
userLoad.addEventListener(Event.COMPLETE,userLoaded);` 

PHP:

$goto=$_REQUEST['goto']; 
return readfile($goto);` 

我最近在路增加了一个目录,它似乎并没有工作了...

因为我只需要94点多回答我自己的问题,我会在这里留下答案:没有尝试过,但我是真实的我认为字符串通过查询到PHP必须避免斜杠空格和其他字符,而是使用字符编码。如果有人知道,肯定请留下一个答案。我只是避开了斜杠,像魅力一样工作。也是请求方法你们谈论的安全漏洞?我不擅长PHP,所以我不知道,但我可以改变它,如果这样更好。感谢您的答案和评论顺便说一句。

+14

仅供参考,从安全的角度来看,你所做的是绝对可怕的。不仅有人可以使用它从服务器获取他们想要的任何内容,但取决于配置,可以将其用作代理。 – Brad

+0

同意安全,但为什么你需要你在?goto = u“+ ... +”我认为t不行,屁股很快就改变了路径,还是我错了? – Daxcode

+0

它完成了一个字符串 - 其中可以找到“char.xml”的目录名 –

回答

2

还有其他方法可以做到这一点,但这很容易理解,而不是安全漏洞。 (当我们说安全漏洞时,您的当前代码将允许任何人以最小的努力完全访问您的系统。)

这里的技巧是路径中的硬编码。

<?php 
switch($_GET['goto']){ 
    case 'char': 
    readfile('char.xml'); 
    break; 

    case 'uchar1': 
    readfile('directory/uchar.xml'); 
    break; 

// repeat for all files 
} 
?> 
+0

是真的!并且您可以稍后更改文件结构,而无需触摸动作脚本。 – Daxcode

+0

安全漏洞是我目前使用的请求方法? –

+0

我应该改变请求方法发布?请回答 –