Официальным способом предотвращения угроз безопасности при массовом назначении является использование attr _ доступный . Однако некоторые программисты считают, что это не работа для модели (или, по крайней мере, не только для модели). Самым простым способом выполнения этого действия в контроллере является разрезание параметров хэш:
@user = User.update_attributes(params[:user].slice(:name))
Однако в документации указано:
Обратите внимание, что вместо этого используется Hash # except или Hash # slice attr_accessible очистка атрибутов не обеспечит достаточной защиты.
Почему это так? Почему расщепление парамов в белом списке не обеспечивает достаточной защиты?
ОБНОВЛЕНИЕ: Линейки 4,0 поставят сильные параметры , уточненное расщепление параметров, так что я полагаю, что все расщепление было не так уж и плохо.
-121--961129-
У меня есть крайние проблемы с добавлением безопасности на веб-панель мониторинга. Я пытаюсь настроить безопасность для множества проектов веб-приложений. Все работает без защиты.
Безопасность, которую я хочу, довольно проста. 2 роли «Releasers» и «Testers», releasers могут делать все, что угодно, testsers могут принудительно построить тестовый проект развертывания и просматривать только остальные проекты, которые все обновляют live установки. Однако я просто не могу заставить его работать. В качестве начала я думаю, что я просто позволил все для всех, и я получаю несколько различных проблем в зависимости от того, как я настраиваю различные вещи. Во всех случаях конфигурационный файл проверяется с помощью средства проверки util.
Конфигурация сервера
Безопасность проекта
Dashboard.config
Есть 3 вещи, которые не ясны из документации.
. Я попробовал формы и окна, интегрированные в web.config и в iis. С формами он по существу жалуется, что нет login.aspx, которого нет, так что я подозреваю, что это правильно. С интегрированными окнами я могу получить доступ к панели мониторинга. Любые проекты, у которых нет элемента безопасности, который я могу видеть в списке, но любое действие приводит к исключению безопасности, утверждающему, что у меня нет разрешения ViewProject. Все проекты с элементом безопасности просто не отображаются в списке. Я получаю такое же поведение, какой бы тип пользователя я ни использовал simpleUser, passwordUser или ldap User.Я не могу найти где-либо, где упоминается любое другое значение, которое я могу поместить в раздел securityPlugins
, кроме simpleSecurity, есть ли другие значения и если да, то каковы они.
Я искал эту документацию и не могу найти никаких ответов ни на один из этих вопросов.
EDIT
Тот, кто может предложить то, что я могу достичь нижеприведенной цели, получает награду, даже если это совершенно другой способ, чем я описал выше.
Требуется набор пользователей, которые могут просматривать все CC.net проекты и принудительно создавать 1 конкретный проект. Мне нужен другой набор пользователей, которые могут просматривать и принудительно создавать все проекты. Я хочу, чтобы он был с одной cc.net панелью мониторинга, одним файлом конфигурации, но с разными учетными записями пользователей.
EDIT 2
Поскольку скоро награда заканчивается, я также дам ее, чтобы любой, кто может предложить какие-то убедительные доказательства того, что безопасность в cc.net не работает, поэтому, по крайней мере, я знаю, чтобы больше не тратить свое время на нее. Кроме того, я попытался зарегистрировать проблему или опубликовать на cc.net форуме об этом, но они, похоже, перешли в новую систему, и это не работает, похоже, также, это просто не позволит вам зарегистрировать учетную запись пользователя, это требует проверки электронной почты, но электронная почта никогда не приходит через.