Официальным способом предотвращения угроз безопасности с массовым присвоением является attr_accessible. Однако некоторые программисты считают, что это не работа для модели (или, по крайней мере, не только для модели). Простейший способ сделать это в контроллере - это отрезать хэши params:
@user = User.update_attributes(params[:user].slice(:name))
Однако в документации указано:
Обратите внимание, что вместо харша абзаца Hash # except или Hash # для дезинфекции атрибутов не обеспечит достаточной защиты.
Почему? Почему белый список параметров не обеспечивает достаточной защиты?
ОБНОВЛЕНИЕ: Rails 4.0 будет поставлять сильные параметры, уточненный выбор параметров, поэтому я думаю, что целая нарезка была не так уж плоха в конце концов.