Фильтрация конфиденциальных данных с помощью видеомагнитофона - PullRequest
15 голосов
/ 22 марта 2012

Я использую VCR gem для записи http-взаимодействий и воспроизведения их в будущем. Я хочу отфильтровать действительное значение пароля в запросе uri. Вот пример того, как выглядит URI:

http://services.somesite.com/Services.asmx/Cabins
Username=long&Password=john&StartDate=03%2F22%2F2012&EndDate=03%2F29%2F2012

Хотя здесь дано объяснение, я все еще не уверен, как это сделать после нескольких попыток:

https://www.relishapp.com/myronmarston/vcr/v/2-0-0/docs/configuration/filter-sensitive-data

Любая помощь будет оценена.

Ответы [ 2 ]

25 голосов
/ 23 марта 2012
VCR.configure do |c|
  c.filter_sensitive_data("<SOMESITE_PASSWORD>") do
    ENV['SOMESITE_PASSWORD']
    # or $credentials['somesite']['password'] or whatever
  end
end

По сути, вы даете видеомагнитофону немного текста-заполнителя, а затем блок должен вернуть реальный пароль, считывая его из любого «хранилища» канонического пароля.пароль нужен только в первый раз, когда запрос записан;при последующих запусках это может быть поддельный пароль (при условии, что это тот же поддельный пароль, который использовался кодом, выполняющим запрос).

7 голосов
/ 11 сентября 2015

для рельсов 4+, если вы используете secretts.yml, вы можете сделать

VCR.configure do |config|
  Rails.application.secrets.each do |k,v|
    config.filter_sensitive_data("ENV[#{k}]") { v }
  end
end

, теперь вы точно не забудете ни одного

...