Я новичок в Rails, и я испек этот маленький контроллер входа.Rails 3 - Безопасен ли этот SQL?
def create
username = params[:user].downcase
user = User.where("username = ? OR email = ?", username, username)[0]
if user and user.check_password(params[:password], user.password, user.salt)
cookies[:auth] = user.auth
redirect_to root_url
else
flash.now.notice = 'Login failed'
render 'new'
end
end
Мне интересно, если это безопасно или мне нужно добавить какую-то санитацию поверх имени пользователя?
да это. небольшим советом было бы использовать '.first' вместо' [0] '. если вы также хотите показать нам check_password, включите его в вопрос. – jvnill
Также вы можете взглянуть на этот railscast об аутентификации http://railscasts.com/episodes/250-authentication-from-scratch-revised –
Да, я знаю о .first, но я предпочитаю [0] :) Спасибо за учебник , Я вижу, что он использует has_secure_password, но я предпочитаю делать свое собственное хеширование. –