PHP & MYSQL – SICUREZZA – 3

PHP & MYSQL - SECURITY - 3
Spread the love

PHP & MYSQL – SICUREZZA – 3

Lorenzo Romano © 2021

 

Nel continuare con questo terzo capitolo, apriremo una parentesi sulla sicurezza delle applicazioni Web in PHP MySQL.
Molti programmi utente hanno la possibilità di far vedere la password subito dopo averla digitata mascherata con asterischi o altro.
Certo, è una grande comodità specie per chi litiga con le tastiere dei computer ma offre il fianco
agli estranei cui basta poco per memorizzare l’intera password o solo parte di essa per poi
ricostruirla con calma.
Partiamo da tale ipotesi per realizzare un programma PHP-MySQL non troppo complesso ma in grado di mantenere la possibilità di rivedere la password in chiaro e la contemporanea verifica
degli accessi autorizzati… in un colpo solo!

—-
Come scrissi nelle puntate precedenti, PHP permette di realizzare programmi “rientranti”, cioè che utilizzano una unica struttura per selezionare più servizi. Tale caratteristica permette di avere l’input dello username e della sua password, fare un controllo di esistenza e di validazione ( si possono avere facilmente più livelli di accesso alle varie procedure), accedere alle applicazioni, oppure respingere l’utente per mancanza di requisiti ma – udute, udite – permette con un comando di vedere – su richiesta esplicita – la password in chiaro.
Del resto se la password digitata è corretta, non c’è alcun motivo di vederla in chiaro!


Per cominciare costruitevi una semplice maschera di sicurezza con input utente e password,
inseriteci due tasti virtuali di cui uno è per la richiesta di accesso e l’altro per un ritorno alla
homepage. Ovviamente in homepage ci dovrà essere il pulsante per richiamare la maschera
medesima.
N. B. Un software professionale scritto come si deve, deve permettere l’aggiornamento dei dati
utente senza bisogno di scriverli direttamente nei programmi. I programmi sono “sacri” e
teoricamente, se non c’è motivo di manutenzione preventiva, correttiva o evolutiva dovrebbero
rimanere intonsi per decine di anni!

Figura 1 – Maschera input di sicurezza

In figura 1 c’è un esempio di maschera di sicurezza. Inserendo i dati e premendo Invio, se le
credenziali sono corrette si avrà direttamente l’accesso al menu gestionale di figura 2 Nel caso di
una delle due credenziali risultasse errata, allora non si ottiene l’accesso al menu ma una
segnalazione di dati errati.
E’ interessante notare che per l’utente queste sequenze sono del tutto trasparenti e facilitate da
messaggi di help il cui numero e il contenuto sono a totale discrezione del programmatore.
Se l’utente è anche gestore del prodotto quindi amministratore, è pur sempre un utente e quindi deve essere coerente con la normativa di sicurezza. Tramite il menu gestionale egli deve soltanto conoscere le funzioni del prodotto anche senza avere alcuna conoscenza di informatica. In effetti occorre dividere in due le professionalità interessate: chi conosce informatica e chi conosce le esigenze del proprio Uffcio gestite da computer. Il programmatore nella realizzazione del software utente deve riuscire a combinare tutte le esigenze sia tecnologiche, sia di management.

Figura 2 – Il menu base

Come ho scritto prima, qualora le credenziali digitate siano in qualche modo sbagliate, il menù base rimarrà nascosto e al suo posto comparirà il seguente messaggio di errore:

Figura 3 – Messaggio di errore con password nascosta

Il messaggio fornisce indicazioni dell’errore più o meno dettagliate e mantiene nascosta sia la password, sia la classe (o tipo)  d’accesso previsto per l’utente. Da notare il pulsante “VediPWD” di figura 3, agendo sul medesimo si otterrà la visualizzazione in chiaro della password appena digitata. Questo comando dovrà essere attivato senza occhi indiscreti!

Figura 4 – Messaggio di errore e la password visualizzata in chiaro (“pallino”)

Non starò a dettagliare gli statement del software che ho scritto, perché molti programmatori preferirebbero strutture di tipo Object Oriented, oppure in CSS, ecc. Comunque, leggendo il flow si capisce benissimo quali saranno le routine e le subroutine da realizzare in una o più delle tante sintassi di programmazione disponibili col linguaggio PHP.

Nel capitolo prossimo analizzerò una delle modalità per garantire la sicurezza delle pagine richiamate dal menu di figura 2. In effetti bisogna impedire che le singole pagine possano essere attivate con comandi esterni al menu e che le medesime rimangano vincolate alla sessione utente in corso e non altre.

 

 

 

 

SviluppoMania

Stay Tuned

 


Spread the love

SviluppoMania - Lorenzo Romano (rolo7)

Articoli correlati

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.