我檢查我是否有漏洞的腳本,並感到非常震驚,我用在過去的方式做,這是非常不安全的:
foreach ($_GET as $key => $value){
$$key = $value;
}
或更短
extract($_GET);
我用螢火蟲修改了一些POST/GET變量來匹配我在腳本中使用的名稱。如果名字被正確猜測,他們可以被覆蓋。
所以我想我不得不獨自做它的命名是這樣的: $ allowed_vars =
$allowed_vars = array("time","hotfile","netload","megaupload","user","pfda","xyz","sara","amount_needed");
foreach ($_GET as $key => $value)
{
if (in_array($key,$allowed_vars))
{
$$key = $value;
}
}
這樣可以節省一些時間不是分別給它們命名。
必須使用什麼樣的自動化?
爲什麼你必須將他們分配到各個變量擺在首位?你不能只使用'$ _GET ['time']'等等嗎? – JJJ 2012-01-16 14:58:22
僅供參考,您會將'$ allowed_vars'放在foreach之外,沒有理由每次都設置它 – 2012-01-16 14:59:04
@Juahana 1.易用性,2.防止轉義。只是編碼風格,這裏不是真正的問題 – Email 2012-01-16 15:09:49