# Devise e https: un dubbio

**URL:** <https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009>\
**Category:** IT\
**Created:** [September 18, 2012, 10:34pm UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009 "2012-09-18T22:34:42Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![aris](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/258eb7/32.png) [@aris](https://www.ruby-forum.com/u/aris)\
**Post date:** [September 18, 2012, 10:34pm UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/1 "2012-09-18T22:34:42Z")

</div>

Qui

> **[How To: Use SSL (HTTPS)](https://github.com/heartcombo/devise/wiki/How-To%3A-Use-SSL-%28HTTPS%29)**
>
> Flexible authentication solution for Rails with Warden. - heartcombo/devise

si dice che per utilizzare https con devise bisogna inserire nel file  
production.rb i seguenti parametri:

#in config/environments/production.rb  
config.to\_prepare { Devise::SessionsController.force\_ssl }  
config.to\_prepare { Devise::RegistrationsController.force\_ssl }  
config.to\_prepare { Devise::PasswordsController.force\_ssl }

Oltre a questo si dice che bisogna abilitare l’SSL nel server web.  
Mi chiedo: se abilito SSL nel server web che necessita’ ho di inserire  
i suddetti parametri nel production.rb?  
Non e’ sufficiente abilitare l’SSL nel server web e utilizzare il  
protocollo https?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 18, 2012, 10:43pm UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/2 "2012-09-18T22:43:28Z")

</div>

Se la tua applicazione in produzione si “rifiuta” di servire richieste  
che non viaggiano su connessione sicura meglio.  
La sicurezza una cosa di cui meglio essere sicuri 🙂

Le ultime versioni di Rails hanno questa configurazione di default in  
config/environments/production.rb mi pare.

-f

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 8:32am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/3 "2012-09-19T08:32:24Z")

</div>

2012/9/18 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 2012/9/18 Fabrizio R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):
> 
> > Se la tua applicazione in produzione si “rifiuta” di servire richieste che non  
> > viaggiano su connessione sicura meglio.  
> > La sicurezza una cosa di cui meglio essere sicuri 🙂
> > 
> > Le ultime versioni di Rails hanno questa configurazione di default in  
> > config/environments/production.rb mi pare.
> 
> Significa che, a meno che non cambi volontariamente questa  
> configurazione di default, va sempre abilitato l’https nel server?

Pero’ torno a ripetere: se abilito l’SSL nel server web non ho  
necessita’ di inserire  
#in config/environments/production.rb  
config.to\_prepare { Devise::SessionsController.force\_ssl }  
config.to\_prepare { Devise::RegistrationsController.force\_ssl }  
config.to\_prepare { Devise::PasswordsController.force\_ssl }

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 8:58am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/4 "2012-09-19T08:58:42Z")

</div>

2012/9/19 Mauro [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Pero’ torno a ripetere: se abilito l’SSL nel server web non ho  
> necessita’ di inserire  
> #in config/environments/production.rb  
> config.to\_prepare { Devise::SessionsController.force\_ssl }  
> config.to\_prepare { Devise::RegistrationsController.force\_ssl }  
> config.to\_prepare { Devise::PasswordsController.force\_ssl }

dipende, la risposta e’ NO se tutta l’app deve sempre funzionare SOLO  
su SSL, e quindi hai configurato il webserver per non rispondere ad  
http (oppure per rispondere sempre con un redirect da http ad https).

Se altrimenti l’app ha parti che possono essere utilizzate anche senza  
SSL e quindi il server web e’ configurato per servirla anche su http,  
allora quelle istruzioni servono per assicurarsi che (almeno) i  
controller che s ioccupano di login, registrazioni, etc. siano  
accessibili solo su SSL

Il secondo caso e’ (ancora) abbastanza comune 🙂

ciao,  
Luca

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 18, 2012, 11:08pm UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/5 "2012-09-18T23:08:35Z")

</div>

2012/9/18 Fabrizio R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Se la tua applicazione in produzione si “rifiuta” di servire richieste che non  
> viaggiano su connessione sicura meglio.  
> La sicurezza una cosa di cui meglio essere sicuri 🙂
> 
> Le ultime versioni di Rails hanno questa configurazione di default in  
> config/environments/production.rb mi pare.

Significa che, a meno che non cambi volontariamente questa  
configurazione di default, va sempre abilitato l’https nel server?

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 9:49am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/6 "2012-09-19T09:49:36Z")

</div>

Bada che se il tuo sito usa SSL per fare il login, allora maglio usarlo  
per tutte le chiamate.  
In questo modo proteggi i cookie di autenticazione che viaggiano con  
tutte le richieste.  
Se proteggi l’assegnazione dei cookie di sessione con HTTPS ma non le  
trasmissioni successive, questo pu essere intercettato e riutilizzato  
per furti d’identit (Session fixation).  
E’ una cosa che oggi con le connessioni wifi aperte abbastanza alla  
portata di tutti, si dice in giro.

-f

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 9:52am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/7 "2012-09-19T09:52:31Z")

</div>

2012/9/19 Fabrizio R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> Bada che se il tuo sito usa SSL per fare il login, allora maglio usarlo per  
> tutte le chiamate.

Il fatto e’ che devo usare un’applicazione per web conferencing e non  
vorrei che l’https rallentasse un po anche se di poco.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 10:04am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/8 "2012-09-19T10:04:14Z")

</div>

2012/9/19 Fabrizio R. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> web conferencing? Casomai lo stream audio e video (che dubito passi per Rails)  
> puoi decidere di non criptarlo.

Ok, grazie per il suggerimento.

---

<div class="post-metadata">

**Author:** ![msan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/3ab097/32.png) [@msan](https://www.ruby-forum.com/u/msan)\
**Post date:** [September 19, 2012, 10:02am UTC](https://www.ruby-forum.com/t/devise-e-https-un-dubbio/223009/9 "2012-09-19T10:02:28Z")

</div>

Non si pu dire che la velocit sia la stessa con o senza SSL (una cripta  
e l’altra no), ma un compromesso che accetterei.  
Altrimenti rischi di complicare troppo l’architettura  
dell’autenticazione. Siamo nella sfera dell’ottimizzazione qui, cosa di  
cui meglio preoccuparsi quando il software soddisfa gi qualche cliente.

web conferencing? Casomai lo stream audio e video (che dubito passi per  
Rails) puoi decidere di non criptarlo.

-f
