この操作にはログインが必要です
リクエストパラメータのforeach展開の代替手段について
投稿者: monsuke | 投稿日時: 2006-6-4 22:31 | 閲覧: 4487回
とあるモジュールの改造を行っているのですが、以下のようにリクエストパラメータをforeachループで取得している箇所を、セキュアなコードに書き直そうと思っています。
foreach ($_POST as $k => $v) {${$k} = $v;}
この場合、渡される可能性があるパラメータを一つ一つ取得するしか方法はないのでしょうか?
全部洗い出すのは気が遠くなりそうなので、他に方法があればご教授ください。
よろしくお願いいたします。
foreach ($_POST as $k => $v) {${$k} = $v;}
この場合、渡される可能性があるパラメータを一つ一つ取得するしか方法はないのでしょうか?
全部洗い出すのは気が遠くなりそうなので、他に方法があればご教授ください。
よろしくお願いいたします。
コメント(2)
新しいものから |
古いものから |
ネスト表示 |
Re: リクエストパラメータのforeach展開の代替手段について
投稿者: suin | 投稿日時: 2006-6-4 22:58
monsukeさん、こんにちは。
引用:パラメータがいくつあるのか分かりませんが、ひとつひとつ取得した方が確実だとは思いますが、パラメータが沢山あると骨が折れますよね。
さて、取得するパラメータがあらかじめ決まっているなら、ホワイトリストを作って、それを元に取得するというのはどうでしょうか?
引用:
monsukeさんは書きました:
とあるモジュールの改造を行っているのですが、以下のようにリクエストパラメータをforeachループで取得している箇所を、セキュアなコードに書き直そうと思っています。
foreach ($_POST as $k => $v) {${$k} = $v;}
この場合、渡される可能性があるパラメータを一つ一つ取得するしか方法はないのでしょうか?
全部洗い出すのは気が遠くなりそうなので、他に方法があればご教授ください。
さて、取得するパラメータがあらかじめ決まっているなら、ホワイトリストを作って、それを元に取得するというのはどうでしょうか?
//取得するパラメータを配列で指定
$array = array('para1', 'para2', 'para3', 'para4', 'para5', 'para6', 'para7');
foreach($array as $v){
$$v = $_POST[$v];
}
Re: リクエストパラメータのforeach展開の代替手段について


