Лучший способ еще больше обезопасить рельсы от приложения? - PullRequest
0 голосов
/ 26 января 2012

Я использую rails 3.2 и devise 1.5.3.

Я добавил атрибут admin в свою модель, как описано в варианте 2 на вики devise Как: добавить роль администратора

Я добавил это в пост-контроллере для принудительного входа в систему:

before_filter :authenticate_user!

Я написал некоторую логику, чтобы скрыть редактирование / новые ссылки в моих представлениях, основываясь на том, являетесь ли вы администратором или нет,

Я чувствую, что мне нужно еще кое-что сделать. Должен ли я добавить что-то еще в новые / редактировать / удалить действия, чтобы сделать их более безопасными?Если да, то где?

Ответы [ 2 ]

0 голосов
/ 26 января 2012

ваш ответ может работать, но довольно сложно обеспечить безопасность всего приложения, если вы используете some logic to hide the edit/new links in my views, и я уверен, что никакое количество security testing не даст вам ощущения, что вы, возможно, забыли о что-то

например, я мог бы войти в систему ,,,, (не имея профиля администратора) и перейти к (в URL): /users/edit/3 и начните портить вашу ценную информацию ....

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

для этого я настоятельно рекомендую CanCan (из rbates ofcourse), который я лично тестировал, и его легко настроить, просто прочитав документы и примеры в github ..... надеюсь, это поможет!

0 голосов
/ 26 января 2012

Ваш механизм аутентификации и авторизации отвечает за обеспечение безопасности для вас, и вы должны убедиться, что он регулярно обновляется с обновлениями безопасности.

Ощущение, которое вы испытываете из-за того, что что-то упустили, может быть надежно покрыто только тестами. Итак, напишите несколько тестов, которые подтверждают, что способ установки вашей Devise, на самом деле, правильный, и что они, не являющиеся администраторами, не имеют доступа ни к чему, к чему у них не должно быть доступа. Затем будьте очень внимательны, чтобы не обновлять ограничения безопасности по мере добавления новых вещей.

Вы не должны писать тесты, чтобы убедиться, что Devise работает - но вам делать нужно писать тесты, чтобы убедиться, что вы используете их именно так, как вы думаете (т. е. если не администраторы не могут получить доступ к странице администратора, напишите тест, который входит в систему как не администратор, попробуйте получить доступ к этой странице и проверьте в тесте, что пользователь перенаправлен, и, если вы есть сообщение «Отказано в доступе», это увольнение). Таким образом, если вы случайно нарушите доступ к безопасности позже, у вас будет хотя бы шанс, что он будет обнаружен тестом в вашем наборе тестов.

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

...