Я участвую в совместной разработке простого веб-приложения на Rails 3.0.9 , и я понял, что возможен фальсификация session_id посредством вредоносного запроса. Помните о том, что это мое первое приложение RoR, поэтому я могу быть совершенно неправ в своих представлениях.
Для текущей функциональности приложения требуются сеансы, поэтому я обратился к хранилищу сеансов ActiveRecordStore, установил и начал тестирование в примитивных рабочих процессах. Я заметил, что Rails Framework создает cookie с именем _session_id
и значением некоторой случайной хеш-подобной строки (в таблице DB SESSION эта строка соответствует столбцу session_id
).
Если это значение в файле cookie изменяется, например, с помощью Firebug, идентификатор текущего сеанса меняется на значение, указанное в данных cookie (проверяется с помощью request.session_options[:id]
), и это изменение распространяется в таблицу базы данных, создавая новую запись сеанса с вышеупомянутые параметры.
Хотя это и не влияет на переменные сеанса, идентификатор сеанса отличается от своего обычного вида, похожего на хеш, с измененным пользователем.
Вот вопрос - как такое поведение можно обнаружить или, предпочтительно, предотвратить?