Общие дыры в безопасности, характерные для Rails? - PullRequest
3 голосов
/ 06 февраля 2011

Я довольно начинающий разработчик Rails, но, поскольку большинство вещей в Rails настолько просты, я всегда боюсь, что добавляю новую дыру в безопасности, когда пишу свой код.Например, всего час назад я обнаружил один в коде, который написал несколько недель назад, где в методе редактирования UsersController я забыл проверить, равен ли пользователь, которого вы редактируете, тому пользователю, в котором вы вошли (т.е.* вместо @user = current_user).Я написал это так, потому что я обычно использую его для всех методов редактирования (например, @post = Post.find params[:id]).Это покажет вам адрес электронной почты другого пользователя.

О каких типичных пробелах в приложениях Rails я должен знать?Вещи, которые легко упустить из-за соглашений (например, пример выше)?

Ответы [ 2 ]

2 голосов
/ 06 февраля 2011

Проблемы здравого смысла, как вы иллюстрировали, являются, вероятно, наиболее важными проблемами безопасности. Rails прошел долгий путь в создании более безопасной среды, например, внедрение SQL, которое мучает многие PHP-приложения, покрыто (по большей части) дезинфицированной формой ввода, которая теперь используется по умолчанию. Официальное слово о безопасности Rails хорошо читается: http://guides.rubyonrails.org/security.html

0 голосов
/ 16 февраля 2011

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

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

Может оказаться полезным следующее:

http://guides.rubyonrails.org/testing.html#functional-tests-for-your-controllers

http://guides.rubyonrails.org/security.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...