# Sicurezza nel modello \*e\* nei controller

**URL:** <https://www.ruby-forum.com/t/sicurezza-nel-modello-e-nei-controller/98338>\
**Category:** IT\
**Created:** [July 13, 2006, 11:43pm UTC](https://www.ruby-forum.com/t/sicurezza-nel-modello-e-nei-controller/98338 "2006-07-13T23:43:36Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![rik0](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/8dc957/32.png) [@rik0](https://www.ruby-forum.com/u/rik0)\
**Post date:** [July 13, 2006, 11:43pm UTC](https://www.ruby-forum.com/t/sicurezza-nel-modello-e-nei-controller/98338/1 "2006-07-13T23:43:36Z")

</div>

È da un po’ di tempo che sono insoddisfatto dei vari metodi di  
protezione dopo l’autenticazione.

Al momento (come ho detto più volte) sto usando LoginEngine per  
l’autenticazione, sopra cui uso UserEngine. Il giocattolo funziona bene  
(altro che giocattolo… è del tutto sovradimensionato, per adesso).  
Complessivamente continuo a meditare di riscrivere il sistema di  
sicurezza. In particolare io ho anche il concetto di “ownership”, ovvero  
ci sono istanze (o attributi) di oggetti che quasi a prescindere dal  
“ruolo” dell’utente si devono potere mostrare.

Talvolta penso di cadere nell’ “overdesign” (all’atto pratico sono  
relativamente pochi gli oggetti che hanno il concetto di ownership). Ma  
la cosa mi ha fatto riflettere su una cosa… il plugin per ACL (che non  
ricordo il nome, ogni volta faccio una fatica boia per trovarlo) e  
UserEngine lavorano a livello controller.  
Sono “filtri” che dicono chi chiama cosa. Nulla da dire.

Il punto è che io sono convinto che la protezione sia anche nel dominio  
del modello. Ci sono oggetti che certi utenti non devono accedere da  
_nessun_ controller (esempio un elemento non approvato da un moderatore  
non deve essere visibile dagli utenti comuni). E non deve essere  
visibile in alcuna maniera, per quanti possibili pannellini possa creare  
(e quello in cui mi scordo il controllo ci scappa).

È il modello che deve impedire ad un certo utente di leggere certe cose.  
Per lo meno nella mia visione, visto che sono cose “sottostanti” al  
livello di controller. E pensandoci bene in casi simili con framework  
meno “evoluti” e più manuali tipicamente avevo praticamente delle facade  
nel model attraverso cui accedevo ai dati (e li veniva fatto il  
controllo che chi chiedeva i dati aveva il permesso).

Medita e medita… matita su carta e mi rendo conto che quello che  
vorrei è un oggetto abbastanza complesso (specie se lo voglio  
riutilizzabile). Peraltro di qualcosa del genere ne aveva parlato anche  
l’autore del plugin per ACL.

Se non che vedo che qualcuno (anzi Qualcuno) lo ha già scritto.  
[http://perens.com/FreeSoftware/ModelSecurity/](http://perens.com/FreeSoftware/ModelSecurity/)

Solo che è vecchiotto e sembra non interagire bene con i nuovi aggeggi  
di gestione utenti (AAA o LoginEngine che sia). Contiene parte di quelle  
funzionalità e ci lavora in modo un po’ diverso.

Ora mi chiedo… c’è un plugin che fa quello che dico “moderno”? Oppure  
devo “rassegnarmi” a mettermi sotto e scrivere io il tutto?

–  
blog: [http://www.akropolix.net/rik0/blogs](http://www.akropolix.net/rik0/blogs) | Enrico F.  
site: [http://www.akropolix.net/rik0/](http://www.akropolix.net/rik0/) | RiK0  
forum: [http://www.akropolix.net/forum/](http://www.akropolix.net/forum/) | Linux Counter: #299198
