Plug-in Rails SSL Requirement: non dovrebbe verificare se sei in modalità di produzione prima di reindirizzare a https?
-
01-07-2019 - |
Domanda
Dai un'occhiata al plugin ssl_requirement.
Non dovrebbe controllare se sei in modalità produzione?Stiamo riscontrando un reindirizzamento a https in modalità sviluppo, il che sembra strano.Oppure è questo il comportamento normale del plugin?Pensavo che in passato si comportasse diversamente.
Soluzione
Immagino che credano che probabilmente dovresti utilizzare HTTPS (magari con un certificato autofirmato) in modalità di sviluppo.Se questo non è il comportamento desiderato, non c'è nulla che ti impedisca di adottare tu stesso un comportamento SSL con involucro speciale nell'ambiente di sviluppo:
class YourController < ApplicationController
ssl_required :update unless Rails.env.development?
end
Altri suggerimenti
def ssl_required?
return false if local_request? || RAILS_ENV == 'test' || RAILS_ENV == 'development'
super
end
Idealmente dovresti testare che la tua applicazione reindirizzi a https durante le fasi sensibili.
Non ha molto senso richiedere SSL nell'ambiente di sviluppo.
Puoi disattivare i plugin ssl_richiesto? metodo che utilizza le strutture di derisione integrate di Rails.
Nella directory root dell'applicazione crea un file test/mocks/development/application.rb
require 'controllers/application_controller'
class ApplicationController < ActionController::Base
def ssl_required?
false
end
end
In questo modo SSL non è mai richiesto nell'ambiente di sviluppo.
in realtà, il reindirizzamento su https è una responsabilità del server web.Aggiungere un'ulteriore verifica dell'hash della richiesta per ogni richiesta in Rails è un IMHO sovraccarico.Ho scritto nginx config, che includono la seguente riscrittura:
riscrivi ^(.*) https://$host$1 permanente;