Самыми распространенными угрозами для поиска являются попытки повысить привилегии через этот класс.Например, если у вас есть пользовательская таблица с атрибутом admin, который используется для определения, является ли пользователь администратором, даже если этот атрибут не может быть установлен в описываемой вами форме, пользователь может создать сообщение для действия формы на странице с помощью&admin=true
или &admin=1
в зависимости от типа данных соответствующего столбца.
Защита от этого заключается в указании в вашей модели атрибутов, которые можно обновлять с помощью массового назначения.
Это делается с помощьюметод attr_accessible
.
attr_accessor :x, :y, :admin
attr_accessible :x, :y
Это предотвратит обновление атрибута администратора с помощью вызова update_attributes
, обычно используемого в действии редактирования.
Другая вещь, на которую следует обратить вниманиеэто автоматизированные регистрации.Для этого есть пара вещей, которые вы можете сделать.Наиболее распространенным является реализация капчи.Без этого кто-то мог бы написать скрипт, который создает 1_000_000 пользователей в вашей таблице, что очень затрудняет определение того, что является реальным, а какое - фальшивым.Вы также можете подумать о регистрации попыток регистрации по IP и ограничении количества запросов, например, в течение нескольких часов.
Что касается защиты страницы редактирования, то наиболее распространенный способ защиты это использованиеbefore_filter в вашем контроллере, который гарантирует, что у пользователя есть некоторая часть информации о сеансе, прежде чем разрешить визуализацию страницы.
class UsersController < ApplicationController
before_filter :protect, :only => [:edit]
private
def protect
unless current_user
redirect_to login_path
end
end
end
Просто несколько примеров.Я уверен, что есть еще много способов защитить себя, но это, по крайней мере, даст вам представление о местах, которые требуют внимания, чтобы предотвратить самые элементарные попытки разрушить ваш день.Проблема с этой темой заключается в том, что методы, используемые для взлома / угона вашего сайта, постоянно развиваются.Некоторые люди думают, что они прикрыты и все равно получают удар.Регулярно делайте резервные копии своих данных с помощью скриптов, пишите другие скрипты, которые проверяют целостность вашей базы данных.Если вы увидите внезапный скачок в пользовательских экземплярах таблицы, вы узнаете, что что-то не так, просмотрите журналы и восстановите свои данные.
Если ваш сайт популярен, он будет атакован, точка.
Еще одна вещь, касающаяся капчи, я слышал, что НИЧЕГО, отображаемое на экране, можно отсканировать с помощью сценария, так как это безопасноможет показаться, что есть талантливые люди, которые могут танцевать вокруг вашей безопасности, такие как Макарена.
Будьте максимально активны и продумайте свои меры реагирования.