レジスターグローバルを使用すべきではないことは知っていますが、その理由を完全に理解することはできませんか?
example.com?authorized=1
例:これは、スクリプトに次のようなものを渡すときにレジスタグローバルを使用することのセキュリティリスクを示すために私が頻繁に見つけるコードです。
if (authenticated_user())
{
$authorized = true;
}
if ($authorized)
{
include '/highly/sensitive/data.php';
}
私の質問は、ユーザーがauthorized=1
URLを渡す必要がある場合、スクリプトで使用する変数名を知っている必要があるということです。そんなことがあるものか?
parse_str()
また、グローバルを登録するのと同じように動作する関数は、セキュリティリスクでもありませんか?