2013-04-12 2 views
2
attr_accessible :email, :password, :password_confirmation 

Если нет, можете ли вы привести пример метода, который предотвращает ошибку «undefined» при удалении attr_accessible.Можно ли установить поле пароля как attr_accessible?

+0

Зачем вам нужен пароль? – ant

+0

? потому что когда пользователь аутентифицируется, от контроллера я проверяю, соответствует ли входной пароль в DB –

ответ

2

Это безопасно. Attr_accessible опасен только для атрибутов, управляющих вашей логикой приложения. Например, если у вас есть флаг, который говорит «да, я проверил, что этот пользователь является администратором», и он может быть установлен пользователем вместо этого, потому что это attr_accessible, то это уязвимость.

Поскольку пароль представляет собой часть информации, предоставляемую пользователем в любом случае, что делает ее настраиваемой одним и тем же пользователем, ничего не меняет.

2

Если вы параноик безопасности, вы могли бы сделать это определение пароля метод:

def password 
    self.password 
end 

таким образом пароль не может быть установлен вручную.

Но вы не должны беспокоиться об этом, потому что многие логины для входа, такие как devise, нуждаются в пароле в attr_accessible.

+0

га). Я не параноидальный, но, поскольку я просто не знаю, как работает хакер, я не могу сказать, как эти проблемы отражают безопасность. Я просто знал, что это как-то связано с безопасностью) –

Смежные вопросы