Class: RuboCop::Cop::Captive::Rails::ForceSslEnabledInProduction

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Defined in:
lib/rubocop/cop/captive/rails/force_ssl_enabled_in_production.rb

Overview

This cop ensures the config force_ssl is set to true.

Pourquoi il faut configurer le force_ssl à true en production ?

  1. Ça redirige les requêtes http → https. C’est une option que permet également le routeur de Scalingo
  2. Ça ajoute un flag Secure sur les Cookies. S’il n’est pas présent, c’est considéré comme une vulnérabilité car ça peut permettre à un pirate de récupérer le cookie en HTTP et potentiellement voler la session.

Constant Summary collapse

MSG =
"force_ssl should be enabled in production."
GOOD_PRACTICE =
"ENV[\"SKIP_FORCE_SSL\"].blank?"

Instance Method Summary collapse

Instance Method Details

#on_new_investigationObject



32
33
34
35
36
# File 'lib/rubocop/cop/captive/rails/force_ssl_enabled_in_production.rb', line 32

def on_new_investigation
  processed_source.comments.each do |comment|
    check_comment(comment)
  end
end

#on_send(node) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/rubocop/cop/captive/rails/force_ssl_enabled_in_production.rb', line 21

def on_send(node)
  if setting_force_ssl_not_true?(node)
    add_offense(node, message: MSG) do |corrector|
      corrector.replace(
        node.arguments.first.source_range,
        GOOD_PRACTICE
      )
    end
  end
end