レジスタグローバル効果を手動で「偽造」することもできますが、セキュリティを追加することもできます。(私はこれをxoopsと呼ばれるosCommerceフォークから部分的に取得しました)
// Detect bad global variables
$bad_global_list = array('GLOBALS', '_SESSION', 'HTTP_SESSION_VARS', '_GET', 'HTTP_GET_VARS', '_POST', 'HTTP_POST_VARS', '_COOKIE', 'HTTP_COOKIE_VARS', '_REQUEST', '_SERVER', 'HTTP_SERVER_VARS', '_ENV', 'HTTP_ENV_VARS', '_FILES', 'HTTP_POST_FILES');
foreach ($bad_global_list as $bad_global ) {
if ( isset( $_REQUEST[$bad_global] ) ) {
die('Bad Global');
}
}
// Make global variables
foreach ($_REQUEST as $name -> $value) {
$$name = $value; // Creates a varable nammed $name equal to $value.
}
コードをより安全にするために微調整したいのですが、少なくともグローバル構成変数(パスやベースURLなど)を不良グローバルリストに追加することによって。
また、これを使用して、使用されているすべてのget / post変数のリストを簡単にコンパイルして、たとえば$return_urlのすべての出現箇所を$_REQUEST['return_url]に置き換えることができます。