# Sessioni e Logging

**URL:** <https://www.ruby-forum.com/t/sessioni-e-logging/214827>\
**Category:** IT\
**Created:** [December 13, 2011, 10:59am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827 "2011-12-13T10:59:33Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [December 13, 2011, 10:59am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/1 "2011-12-13T10:59:33Z")

</div>

Dunque, ho testato il funzionamento di jQuery, ho smanettato con Sass, e  
ho  
esplorato un pochino l’albero delle cartelle del mio progetto…

Mi chiedevo come poter gestire le sessioni nella mia attualmente unica  
homepage, e creare un rudimentale meccanismo di log (la mia home  
attualmente bianca con qualche scritta XD).

Non pretendo che mi spiegate tutto dalla ML, ma se avete delle risorse  
web  
da condividere sull’argomento ne sarei lieto (ho gi spulciato la guida  
introduttiva a rails, ma non mi sembra tratti molto l’argomento, almeno  
non  
dal punto di vista pratico…)

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 13, 2011, 11:09am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/2 "2011-12-13T11:09:27Z")

</div>

Prova con Devise

> **[GitHub - heartcombo/devise: Flexible authentication solution for Rails with...](https://github.com/heartcombo/devise)**
>
> Flexible authentication solution for Rails with Warden. - GitHub - heartcombo/devise: Flexible authentication solution for Rails with Warden.

se vuoi avere anche dei “ruoli” (admin, superuser, registered, etc etc)  
puoi usare can can

> **[GitHub - ryanb/cancan: Authorization Gem for Ruby on Rails.](https://github.com/ryanb/cancan)**
>
> Authorization Gem for Ruby on Rails. Contribute to ryanb/cancan development by creating an account on GitHub.

Altrimenti se vuoi capire come funziona e fare “from scratch” c’e’ un  
ottimo railscast:

> **[\#250 Authentication from Scratch - RailsCasts](http://railscasts.com/episodes/250-authentication-from-scratch)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

ciao!

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 13, 2011, 9:04pm UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/3 "2011-12-13T21:04:09Z")

</div>

sul RailsCast di Davide:

> **[\#250 Authentication from Scratch - RailsCasts](http://railscasts.com/episodes/250-authentication-from-scratch)**
>
> Short Ruby on Rails screencasts containing tips, tricks and tutorials. Great for both novice and experienced web developers.

cosa si intende per “_password\_salt_”?

Il giorno 13 dicembre 2011 11:53, Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha  
scritto:

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 13, 2011, 9:40pm UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/4 "2011-12-13T21:40:06Z")

</div>

Il 13 dicembre 2011 21:03, Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> sul RailsCast di Davide:  
> [#250 Authentication from Scratch - RailsCasts](http://railscasts.com/episodes/250-authentication-from-scratch)
> 
> cosa si intende per “_password\_salt_”?

Ciao,

i dettagli puoi vederli qua:  
[http://it.wikipedia.org/wiki/Sale\_(crittografia)](http://it.wikipedia.org/wiki/Sale_(crittografia))

In breve: normalmente, le password non vengono conservate in chiaro  
(non nei sistemi seri), per ovvi motivi di sicurezza; si conserva,  
invece, una loro trasformazione tramite una funzione di hash.  
Queste funzioni hanno una propriet: facile passare dalla password  
al suo hash, e invece difficilissimo risalire dall’hash alla  
password.

Quindi, quando digiti la password, viene applicata la funzione di hash  
e il risultato viene confrontato con l’hash conservato.

Questo meccanismo, teoricamente sicuro, per suscettibile di un  
certo tipo di attacco: se, infatti, il malintenzionato ottenesse  
l’accesso in lettura al db degli hash delle password, potrebbe tentare  
un attacco di forza bruta, calcolando l’hash (il cui algoritmo in  
genere pubblico) di tutte le parole di un dizionario e/o le password  
pi comunemente usate (tipo “qwertyuiop”, “password”, “12345”…) e  
confrontarle con il db degli hash, con altissime probabilit di  
trovare numerose corrispondenze.

La soluzione aggiungere un po’ di sale, ovvero: si sceglie una  
stringa casuale segreta e la si aggiunge alla password prima di  
applicare la funzione di hash. Se, ad esempio, la mia password  
“pippobaudo” (cit.), e il sale “23r09n2”, la funzione di hash si  
applica a “pippobaudo23r09n2” e viene conservato il risultato,  
rendendo cos vano l’attacco di forza bruta.

Ovviamente, perch questo funzioni, il sale dev’essere conservato in  
un luogo separato rispetto all’hash delle password, altrimenti tutto  
inutile.

pietro

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 14, 2011, 9:22am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/5 "2011-12-14T09:22:18Z")

</div>

Legger anche la pagina di wikipedia, ma gi la tua spiegazione mi basta,  
sono ignorante nel campo della sicurezza, non avendo mai fatto un  
progetto  
da zero…

Sempre sullo stesso RailsCast ho notato che l’autore a un certo punto  
dice  
di utilizzare la gemma _bcrypt-ruby_, fondamentale? Non c’ un modo  
analogo senza andare a ritoccare il bundle standard di Rails 3.1? (la  
mia  
versione appunto 3.1.3 mentre quella del railcast 3.0.4 mi pare…)

Non che mi dia troppo fastidio, solo che vorrei imparare le cose  
gradualmente, se mi devo imparare ogni volta una gemma nuova affitto  
domani!

Il giorno 13 dicembre 2011 21:39, Pietro G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
ha  
scritto:

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 13, 2011, 11:53am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/6 "2011-12-13T11:53:25Z")

</div>

Grazie, si voglio capire “from scratch”, appena posso mi spulcio quanto  
mi  
hai passato, sembra proprio quello che cercavo!

Il giorno 13 dicembre 2011 11:08, Davide R.  
\<removed\_email\_address@domain.invalid

> ha scritto:

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 14, 2011, 11:46am UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/7 "2011-12-14T11:46:31Z")

</div>

Il 14 dicembre 2011 09:21, Luca B. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) ha scritto:

> Sempre sullo stesso RailsCast ho notato che l’autore a un certo punto dice  
> di utilizzare la gemma _bcrypt-ruby_, fondamentale? Non c’ un modo  
> analogo senza andare a ritoccare il bundle standard di Rails 3.1? (la mia  
> versione appunto 3.1.3 mentre quella del railcast 3.0.4 mi pare…)

Scusa, non capisco il problema. Soprattutto, non c’ un bundle  
standard di rails, c’ il bundle della tua applicazione.

Se vuoi che la tua applicazione modifichi immagini, aggiungerai una  
gem rmagick (o simili), se vuoi usare haml aggiungerai la gemma haml,  
se vuoi gestire allegati aggiungerai paperclip, se vuoi usare  
postgresql userai pg e cos via.

Non devi ritoccare niente, solo specificare, nel tuo Gemfile, che vuoi  
usare una certa gemma.

L’alternativa ovviamente c’: implementare tu, da zero, un algoritmo  
di hash per le password, che volendo pu anche essere un esercizio  
interessante, purch tu non lo metta mai in produzione, dato che hai  
detto di non essere un esperto di sicurezza…

pietro

---

<div class="post-metadata">

**Author:** ![luca](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/51bf81/32.png) [@luca](https://www.ruby-forum.com/u/luca)\
**Post date:** [December 14, 2011, 12:30pm UTC](https://www.ruby-forum.com/t/sessioni-e-logging/214827/8 "2011-12-14T12:30:32Z")

</div>

Il giorno 14 dicembre 2011 11:46, Pietro G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
ha  
scritto:

> interessante, purch tu non lo metta mai in produzione, dato che hai  
> detto di non essere un esperto di sicurezza…
> 
> pietro
> 
> * * *
> 
> Ml mailing list  
> removed\_email\_address@domain.invalid  
> [http://lists.ruby-it.org/mailman/listinfo/ml](http://lists.ruby-it.org/mailman/listinfo/ml)

ok, grazie per la risposta, user questo bcrypt dunque!
