Безопасность Rails: фильтрация логов
Илья • 25 сентября 2007 г.
Если в вашем приложении используются такие важные данные как номера кредитных карт или пользовательские пароли, то вам стоит фильтровать свои логи, в которые эта секретная информация просачивается.
Сделать это очень просто. Достаточно вставить следующую строку в ApplicationController:
class ApplicationController < ActionController::Base
filter_parameter_logging :password
end
В метод filter_parameter_logging через запятую передаются названия всех параметров, которые вы не хотите отображать в логах. Вы можете вызвать этот метод в любом контроллере, где должна совершаться фильтрация логов.
Важный нюанс: метод filter_parameter_logging использует регэкспы, для сравнения параметров, так что код, приведённый выше, будет работать для всех параметров, в названии которых содержится слово password.
Вот как выглядят логи с отфильтрованным параметром :password:
Processing AccountsController#login (for 127.0.0.1 at 2007-09-25 03:56:02) [POST]
Session ID: 66e0c98d03cc80433cecfe3cf76f65aa
Parameters: {"login"=>"vasya", "password"=> "[FILTERED]",
"password_confirmation"=> "[FILTERED]"}
1 комментарий:
Извините, но комментарии для этой статьи уже закрыты.

http://railscasts.com/episodes/9