Почему разрезание хэша params создает проблему безопасности при массовом назначении?

Официальным способом предотвращения угроз безопасности при массовом назначении является использование attr _ доступный . Однако некоторые программисты считают, что это не работа для модели (или, по крайней мере, не только для модели). Самым простым способом выполнения этого действия в контроллере является разрезание параметров хэш:

@user = User.update_attributes(params[:user].slice(:name))

Однако в документации указано:

Обратите внимание, что вместо этого используется Hash # except или Hash # slice attr_accessible очистка атрибутов не обеспечит достаточной защиты.

Почему это так? Почему расщепление парамов в белом списке не обеспечивает достаточной защиты?

ОБНОВЛЕНИЕ: Линейки 4,0 поставят сильные параметры , уточненное расщепление параметров, так что я полагаю, что все расщепление было не так уж и плохо.

-121--961129-

CruiseControl.net Безопасность веб-панели У меня есть крайние проблемы с добавлением безопасности к веб-панели. Я пытаюсь настроить безопасность для множества проектов веб-приложений. Все работает без защиты. Охрана, которую я хочу...

У меня есть крайние проблемы с добавлением безопасности на веб-панель мониторинга. Я пытаюсь настроить безопасность для множества проектов веб-приложений. Все работает без защиты.

Безопасность, которую я хочу, довольно проста. 2 роли «Releasers» и «Testers», releasers могут делать все, что угодно, testsers могут принудительно построить тестовый проект развертывания и просматривать только остальные проекты, которые все обновляют live установки. Однако я просто не могу заставить его работать. В качестве начала я думаю, что я просто позволил все для всех, и я получаю несколько различных проблем в зависимости от того, как я настраиваю различные вещи. Во всех случаях конфигурационный файл проверяется с помощью средства проверки util.

Конфигурация сервера

     
    
      
            
    
    
      
        
          
        
      
      
        
          
        
      
    
  

Безопасность проекта


      
        
                
      
    

Dashboard.config

Есть 3 вещи, которые не ясны из документации.

  • Какой тип аутентификации необходимо настроить в IIS.
  • Какие пользователи необходимо настроить на сервере ccnet.config секция безопасности.
  • Что необходимо в конфигурации панели мониторинга в разделе .

Я попробовал формы и окна, интегрированные в web.config и в iis. С формами он по существу жалуется, что нет login.aspx, которого нет, так что я подозреваю, что это правильно. С интегрированными окнами я могу получить доступ к панели мониторинга. Любые проекты, у которых нет элемента безопасности, который я могу видеть в списке, но любое действие приводит к исключению безопасности, утверждающему, что у меня нет разрешения ViewProject. Все проекты с элементом безопасности просто не отображаются в списке. Я получаю такое же поведение, какой бы тип пользователя я ни использовал simpleUser, passwordUser или ldap User.Я не могу найти где-либо, где упоминается любое другое значение, которое я могу поместить в раздел securityPlugins , кроме simpleSecurity, есть ли другие значения и если да, то каковы они.

Я искал эту документацию и не могу найти никаких ответов ни на один из этих вопросов.

EDIT

Тот, кто может предложить то, что я могу достичь нижеприведенной цели, получает награду, даже если это совершенно другой способ, чем я описал выше.

Требуется набор пользователей, которые могут просматривать все CC.net проекты и принудительно создавать 1 конкретный проект. Мне нужен другой набор пользователей, которые могут просматривать и принудительно создавать все проекты. Я хочу, чтобы он был с одной cc.net панелью мониторинга, одним файлом конфигурации, но с разными учетными записями пользователей.

EDIT 2

Поскольку скоро награда заканчивается, я также дам ее, чтобы любой, кто может предложить какие-то убедительные доказательства того, что безопасность в cc.net не работает, поэтому, по крайней мере, я знаю, чтобы больше не тратить свое время на нее. Кроме того, я попытался зарегистрировать проблему или опубликовать на cc.net форуме об этом, но они, похоже, перешли в новую систему, и это не работает, похоже, также, это просто не позволит вам зарегистрировать учетную запись пользователя, это требует проверки электронной почты, но электронная почта никогда не приходит через.

7
задан Ben Robinson 27 September 2011 в 09:02
поделиться