0

ユーザーパスワードを認証するために、デバイスでrails3.2.xを使用しています。あるページで、ユーザーが自分のパスワードを更新できるように更新しています。ただし、間違った現在のパスワードを入力した後でも、ユーザーは自分のパスワードを更新できる可能性があります。

Railsコンソールでも同じことが起こっています。

@user = user.update_attributes :password => "some_password"

@userのパスワードを更新します。

この問題を回避するにはどうすればよいですか?

UPDATE:間違ったcurrent_passwordパラメーターを使用してユーザーパスワードをupdate_attributesメソッドに更新できます。

@user = user.update_attributes :password => "some_password", :current_password => "wrong_password"
4

3 に答える 3

1

理解した、

使用する代わりに

 user.update_attributes(params[:user])

使用できます

user.update_with_password(params[:user])

これにより、現在のパスワードが有効であることが保証されます。

于 2012-12-01T05:44:58.450 に答える
0

多分あなたは使用する必要があります

before_filter :authenticate_user!

于 2012-10-22T11:00:39.793 に答える
0

追加する必要があるか、コントローラーを追加:password => "some_password"する必要があるかもしれません:confirm_password => "some_password":before_filter => authenticate_user!.

于 2012-10-22T11:17:49.007 に答える