2012-05-01 111 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

我應該改變請求方法發佈?請回答 –