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."

Instance Method Summary collapse

Instance Method Details

#on_new_investigationObject



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

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

#on_send(node) ⇒ Object



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

def on_send(node)
  if setting_force_ssl_not_true?(node)
    add_offense(node, message: MSG) do |corrector|
      # Replace with 'true' only if the argument is not already 'true'
      unless node.arguments.first.true_type?
        corrector.replace(
          node.arguments.first.source_range,
          "true"
        )
      end
    end
  end
end