Plug-in Rails SSL Requirement: non dovrebbe verificare se sei in modalità di produzione prima di reindirizzare a https?

StackOverflow https://stackoverflow.com/questions/97468

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

È stato utile?

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;

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top