私は Ruby on Rails 4.1.1 を使用しています。次のように、url_for
メソッドに直接渡されるパラメーターを (URL クエリ文字列を介して) 受け入れることを考えています。
# URL in the browser
http://www.myapp.com?redirect_to[controller]=users&redirect_to[action]=show&redirect_to[id]=1
# Controller
...
redirect_to url_for(params[:redirect_to].merge(:only_path => true))
上記のアプローチを採用すると、アクションの実行後にユーザーをリダイレクトできます。params
ただし、セキュリティ上の問題につながる可能性のある恣意的な入力ができると思います...
メソッドに入力する URL パラメーターを受け入れても安全url_for
ですか? 落とし穴とは?最悪の場合、何が起こりますか?
アプリケーションへのリクエスト中にログを記録params
することで、Rails が常に パラメーター:controller
を追加していることに気付きました。内部で保護されており、Rails が意図しているように動作するため、action
確認は上記の方法で使用できる可能性があります。url_for