質問: いつもお世話になっております。 もしすでにご存知の方が教えていただきたいのですが、symfony2で不正なパラメータが渡された場合、リダイレクトする方法はありますでしょうか? routing.yml で requirements を指定すればある程度は制御できますが、存在するページの末尾に「?」や「&」でパラメータをつけるとアクセスできてしまいます。 すべてのコントローラーですべてのパラメータを判定すればできないことはないのでしょうが、他に良い方法をご存じの方がいらっしゃれば、教えていただきたいです。 よろしくお願いいたします。
回答: リクエストのパラメタを解析することには意味がないとおもいます。何をもって不正とするのでしょうか? 例えば、ECサイトでリクエストに注文IDのようなものが入っているとして、その注文がセッションのIDが発行したものか、と言った場合、それはアプリケーション的に調べなければ意味がないですね。 違う言い方をすれば、リクエストごとにちゃんとアプリケーションレベルでサニタイズすればその値がどこから来たのかは考えなくても構わないのではないでしょうか。 SymfonyのFormにはCSRF対策機能が組み込まれているので、Formを使ってデータをやり取りし、値をアプリケーション的意味でチェックすればクエリを分析しなくても支障はないですし、プログラムの保守性の観点からもそうするべきだと思います。