
Come gestire gli accessi ai dati per garantirne la riservatezza

Sarà capitato a tutti di leggere nei quotidiani o di sentire al telegiornale notizie riguardanti violazioni di sicurezza come fughe di dati o utenti che accedono ad informazioni che non dovrebbero essere a loro visibili.
E quando si tratta di database aziendali e di software che vi accede le cose si complicano.
Con un approccio tradizionale infatti non è per nulla banale per i programmatori proteggere i dati degli utenti. Ma vediamo come con un approccio speciale si sia progettata in Broadway Solutions una soluzione innovativa che risolve definitivamente questo problema.
Davvero ci siete riusciti? … e come fate?
L’idea in realtà è piuttosto semplice. Nella nostra architettura applicativa infatti abbiamo introdotto il componente ORM che fa dialogare l’applicativo con il database ed ha la possibilità di riscrivere autonomamente le interrogazioni al database basandosi sull’utente collegato e i suoi profili.
Si consideri inoltre che la gestione delle regole di accesso è dichiarativa, aspetto che rafforza la tutela. In questo modo infatti allo sviluppatore basta dichiarare le regole con cui ogni utente che può accedere a determinate informazioni una volta per tutte. Si evitano così i tradizionali rischi connessi alla necessità che il programmatore debba esplicitare i filtri ad ogni accesso.
Facciamo un esempio pratico …
Immaginiamo che l’applicativo che abbiamo sviluppato per il nostro committente sia a suo uso interno e che possieda dati riguardanti i suoi clienti e le loro fatture. Immaginiamo ora che il management della ditta voglia fornire l’accesso al gestionale da parte dei propri clienti.
Tipicamente questa operazione è molto delicata, in quanto, non solo bisogna censire tutte le operazioni che l’utente deve poter fare e a quali parti di ciascun modulo dell’applicativo deve poter accedere, ma è anche necessario individuare quali dati sono sono a sua disposizione.
Tornando all’esempio specifico, ciascun cliente dovrà poter consultare le proprie fatture, ed ovviamente non potrà consultare in nessun modo le fatture degli altri clienti.
La parte difficile e vulnerabile della programmazione è trovare tutte le interrogazioni fatte dal software sul database delle fatture ed aggiungere l’istruzione che implementa il seguente concetto “se si tratta di un cliente, mostra solo le sue fatture”.
Ma le righe di codice dove questo tipo di interrogazioni vengono fatte nell’applicativo possono essere centinaia, migliaia o anche molte di più. Spesso dopo aver eseguito tali interventi rimane comunque il dubbio di averle effettivamente censite tutte. Inoltre non c’è modo di essere sicuri che le nuove funzionalità che verranno introdotte nell’applicativo continueranno a rispettare la regola.
Con la nostra soluzione invece:
il componente ORM è in grado di “riscrivere” le interrogazioni che vengono fatte dall’applicativo tenendo conto dell’utente collegato!
Nel caso dell’esempio codificando la regola “le fatture visibili agli utenti di tipo sono solo le proprie” ORM riscriverà autonomamente qualunque lettura dal database aggiungendo il filtro in modo del tutto automatico.
Questo approccio consente che la regola d’accesso venga scritta solo una volta collegandola all’entità “fatture” invece che dover essere riscritta in tutte le interrogazioni fatte dall’applicativo.
Inoltre qualunque integrazione al programma che modifichi le interrogazioni, o che ne aggiunga di nuove, avrà la regola applicata in modo completamente automatico.