Rails SSL Requirement plugin - ne devrait-il pas vérifier si vous êtes en mode de production avant de rediriger vers https?
-
01-07-2019 - |
Question
Consultez le plug-in ssl_requirement.
Ne devrait-il pas vérifier si vous êtes en mode de production? Nous voyons une redirection vers https en mode développement, ce qui semble étrange. Ou est-ce le comportement normal du plugin? Je pensais que cela se comportait différemment dans le passé.
La solution
Je pense qu'ils pensent que vous devriez probablement utiliser HTTPS (peut-être avec un certificat auto-signé) en mode développement. Si ce n'est pas le comportement souhaité, rien ne vous empêche de vous en tenir à un comportement SSL spécial dans l'environnement de développement:
class YourController < ApplicationController
ssl_required :update unless Rails.env.development?
end
Autres conseils
def ssl_required?
return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
super
end
Idéalement, vous devriez vérifier que votre application redirige vers https au cours de phases sensibles.
Il n'est pas très utile d'exiger SSL dans l'environnement de développement.
Vous pouvez supprimer la méthode ssl_required? des plugins à l'aide des fonctions de moquage intégrées de Rails.
Sous le répertoire racine de votre application, créez un fichier test / mocks / development / application.rb
require 'controllers/application_controller'
class ApplicationController < ActionController::Base
def ssl_required?
false
end
end
De cette façon, SSL n'est jamais requis dans l'environnement de développement.
en fait, la redirection via https est une responsabilité du serveur Web. Ajouter une demande supplémentaire de vérification de hachage pour chaque demande dans Rails est un IMHO en surcharge. J'ai écrit nginx config , ce qui inclut la réécriture suivante:
réécrivez ^ (. *) https: // $ hôte $ 1 permanent;