[PHP] max_input_varsの罠 : してログ

[PHP] max_input_varsの罠

PHP 2015122

項目数の多いフォームの値が受け取れない場合、max_input_vars の設定を疑ってみてください。 PHP 5.3.9 から導入されたもので、この設定値を超える数の GET や POST の値を捨ててしまう、という動きをします。 内容からして DoS 攻撃を回避する目的のものですのですし、デフォルトの 1000 個というのは、通常は問題にならない設定だと思います。

しかし、現在関わっているプロジェクトでは、数百~千レコードくらいのテーブルを、すべてフォーム要素に展開するという恐ろしい仕様なのです。 仕様を把握した瞬間に、これは無いな~と変更を打診しましたがゴリ押しされてしまい、仕方なく実装してみたところ、軽くこの制限を超えてしまったようです。 これに気づくのに、かなりムダな時間を要してしまったのが痛いですが、今回は内部のシステムですので max_input_vars の値を大幅に増やして対応しました。 ちなみに、この設定は無効にできないらしいです。 それにしても、まだシステムエンジニア的な嗅覚は持っていたようで、少し安心しました。

0 件のコメント
名前:
コメント: