LoginSignup
18
19

More than 5 years have passed since last update.

URL直打ち防止

Last updated at Posted at 2018-07-30

URL直打ちとは

そのままURLに直接打ち込むこと。
対策していないと、他のユーザーが自分のページを編集・更新したりできてしまう。
現在twitterのようなアプリを作成中で、備忘録として書いてます。

対策例

メソッドを作り、関連するcontrollerにbefore_actionに設定する。
例えばcorrect_userというメソッド作る。


def correct_user
  @micropost = current_user.microposts.find_by(id: params[:id])
    unless @micropost
      redirect_to root_url
    end
end

このcorrect_userメソッドを下記のように設定すると、URL直打ちで対象ページに遷移しようとするとき(ここではedit,updateアクション)、正しいユーザーじゃないとトップページにリダイレクトされる。

controller.rb
before_action :correct_user, only: [:edit, :update]

補足

correct_userの中に記入されているcurrent_userはヘルパーメソッドで下記の内容(名前似てるので注意)

def current_user
  User.find_by(id: session[:user_id])
end
18
19
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
19