2016-09-01 80 views
-2

我聽說它的一個黑客通過陣列中的查詢參數一樣這是一個黑客發送數組中的查詢參數中獲取?

http:site.com?a[]=5&a[]=6

我知道查詢參數PHP支持數組,以便在服務器端,你可以得到類似

$_GET[a] = [5,6] 

難道其他編程語言像PHP一樣支持這個嗎?這種方式是否會傳遞數組?如果是,那麼在GET參數中傳遞數組的最佳做法是什麼?

IMO:它的功能不是黑客攻擊仍然希望得到社區

+0

'a [] = 5&b [] = 6'如何變成a [0]和a [1],不是a [0]和b [0]嗎? – Thamilan

+0

@Thamilan對不起我的錯誤。它應該是[] = 5&a [] = 6 –

回答

1

的意見是不是黑客攻擊,這是一個真棒功能!

我想人們會這樣說,因爲如果你的用戶在URL中看到它就很難看。

你可以做的是concat你的數據,然後爆炸它的服務器端。

http:site.com?a=5_6

explode('_', $a);

+0

是的,我同意。它的功能,但不知道人們稱它爲黑客。所以想要從社區確認 –

0

是它發送數組中的查詢參數中得到破解?

這是一個應用程序/ x-www-form-urlencoded(它並不是所有明確定義的第一位)的非標準添加,所以是的,它是一種黑客攻擊。

無論是聰明的黑客還是醜陋的黑客在很大程度上都是一個意見問題。有優點和缺點。

其他編程語言是否支持PHP這樣的功能?

大多數語言都沒有在這樣基礎的層次上進行HTTP處理。 PHP開始像CGI風格的事物一樣展示圖書館。你真的應該在圖書館處理表單數據,而不是在這裏處理語言。

大多數將允許您擴展查詢字符串中的重複鍵,而不需要名稱包括[](它是冗長且難以閱讀)以使其起作用。這個限制是你不能在數據中明確指定數組索引。

雖然有PHP風格的實現。 body-parser可讓您在指定extended: true時使用該語法。 Perl的​​實現它,雖然沒有將它與代碼集成以從請求中提取字符串。

如果是,那麼在GET參數中傳遞數組的最佳做法是什麼?

如果您使用的是PHP,那麼請使用PHP的語法。