Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Programmazione, sicurezza, debug e form

Tutte le verifiche da effettuare lato server per garantire la sicurezza e una corretta interazione con l'utente
Tutte le verifiche da effettuare lato server per garantire la sicurezza e una corretta interazione con l'utente
Link copiato negli appunti

Programmazione

Buona parte dei siti presenti sul web offrono oggi caratteristiche di interattività e dispongono di contenuti generati in maniera dinamica. In sostanza, le pagine sono in grado di rispondere alle azioni degli utenti. Forse non tutte, certo, ma di sicuro è una necessità (tecnica e di gestione) per i siti più frequentati come i motori di ricerca, i social network e i portali di informazione.

Anche i progetti più semplici necessitano di queste caratteristiche: attività ormai consuete e quotidiane come la consultazione di un catalogo, la ricerca di un argomento o la compilazione di un modulo online sono di fatto azioni pensate e gestiste in ogni possibile variante.

Per questo tipo di mansione è necessario un Web Developer, figura in grado di sviluppare il "motore" del sito e tutti gli strumenti utili al cliente per aggiornare i contenuti in piena autonomia e con la minima competenza tecnica. A questo professionista spettano quindi una serie di controlli e verifiche legate alle funzionalità, alla sicurezza, alla qualità dei dati salvati nonché alla performance dell'eco-sistema sito.

Versioni

Occorre prima di tutto verificare che il codice in pubblicazione corrisponda all'ultima versione stabile e confermata dal cliente durante i test. Spesso, infatti, esistono più versioni conseguenti alle modifiche in corso d'opera.

È buona norma tener traccia dello storico evolutivo, magari grazie ad un sistema di versioning; invece risulta davvero fondamentale mantenere sempre sincronizzate le due versioni: quella di sviluppo e quella di produzione. Questo ad eccezione dei file di configurazione i quali dovranno essere aggiornati con le costanti riferite all'ambiente di produzione online (URL, caselle mail, gateway di pagamento, etc).

Infine, verificare la presenza di un minimo di documentazione e commenti nel codice perché nel tempo aiuteranno i programmatori che dovranno metterci mano (ed è sempre indice di attenzione e professionalità).

Debug

La ricerca della perfezione è una strada infinita, ma compiere qualche passo in questa direzione è il minimo che si possa fare per produrre un risultato di buon livello. L'attività di debugging diventa pertanto indispensabile per ogni sito dinamico e interattivo, ma è bene verificare che la versione in produzione non contenga funzioni di debug ancora attive.

Sempre in quest'ottica è possibile controllare di aver eliminato eventuali identificativi di sessione dagli URL e disattivato la visualizzazione completa degli errori. A tal proposito, anzi, occorre esser certi di aver gestito ogni errore interno nel tentativo di mostrarlo all'utente in una forma discorsiva, in lingua e comprensibile ai più.

Con l'obiettivo di rilasciare una versione il più possibile pulita bisogna verificare l'eliminazione degli utenti e degli account di prova, ma anche dei contenuti fittizi inseriti durante la fase di sviluppo ed il conseguente test. Dal punto di vista tecnico invece può essere utile eliminare dalle pagine tutto il codice JavaScript non più utilizzato.

Sicurezza

Quando un sito prevede funzionalità interattive, all'interno delle quali è previsto un passaggio di informazioni, possono crearsi problemi di sicurezza. Fortunatamente la maggior parte di questi sono evitabili prestando la massima attenzione alla gestione dei dati.

Per evitare bug XSS è buona norma effettuare l'encoding di tutti gli input modificabili dall'utente (form, URL, etc) e poi mostrati nella pagina. In parallelo, per scongiurare un altro grave bug di sicurezza chiamato SQL Injection, è necessario gestire lato server tutti gli input ricevuti dall'utente, in particolare con l'utilizzo di un DataBase. Nel caso in cui fosse presente un'area riservata occorre verificare l'accesso ai contenuti in essa protetti, il controllo sulle credenziali utente ed eventuali permessi da attribuire in base al livello.

In termini di gestione, infine, sarebbe prudente gestire tutti gli errori bloccanti in maniera da non fornire alcun tipo di informazione sulla struttura degli script e dei DataBase che compongono il sito.

Form

Uno dei metodi più diffusi per l'interazione e lo scambio di dati sul web è il form. Quasi ogni sito dispone almeno del modulo di contatto: un elenco di campi da riempire con le informazioni che l'utente desidera fornire al proprietario del sito.

Prima della pubblicazione bisogna verificare ogni form presente sulle pagine: il controllo sui campi obbligatori, il corretto funzionamento dell'invio, la validità del captcha come sistema anti-spam ed il formato dei dati. A tal proposito è necessario verificare che i dati ricevuti dal form vengano controllati sia lato client (per una pronta risposta all'utente) sia lato server (per contro verifica e per l'utenza che ha disattivato JavaScript).

Nel caso in cui il form richieda il consenso al trattamento dei dati bisogna verificare la presenza dell'informativa e della spunta di conferma, obbligatoria, il cui valore predefinito dovrà essere deselezionato.

Invece, quando il form riguarda l'iscrizione ad un servizio, i controlli da completare sono più articolati. Bisogna infatti verificare il funzionamento della procedura di registrazione simulando l'intero iter. Viceversa occorre completare anche la procedura di cancellazione e di fatto analizzare tutte le procedure di opt-in e di opt-out.

Un altro tipico utilizzo del form riguarda la ricerca di contenuti. In questo caso occorre verificare, oltre al funzionamento, anche la rilevanza dei risultati e, dove possibile, la presenza di un permalink per ogni singola lista di risultati.

Infine, nel caso di un form dedicato alle credenziali per l'accesso al servizio bisogna verificare il corretto funzionamento del login, del logout e l'effettiva protezione dei contenuti.

Performance

Nell'ipotesi di un sito che prevede di ottenere un volume di traffico importante è prassi effettuare una simulazione di carico sul server grazie all'ausilio di appositi software. In parallelo è possibile verificare la necessità di un sistema di caching dei contenuti ed eventualmente realizzarlo per ridurre il carico sulla macchina. Infine, dove possibile, verificare l'utilizzo delle librerie JavaScript in versione compressa.

Punti da controllare

Ecco i punti da verificare tramite la checklist sugli aspetti visti in questa lezione:

  OK KO ND
Versioni      
Il codice online corrisponde all’ultima versione stabile e confermata con il cliente
La versione di sviluppo e quella di produzione sono correttamente sincronizzate
I file di configurazione online si riferiscono all’ambiente di produzione (es. URL)
Il codice è commentato e versionato
Debug      
La versione in produzione non ha funzioni di debug attive
Sono stati eliminati tutti gli identificativi di sessione dagli URL
Le pagine non contengono codice JavaScript inutilizzato
Eliminati utenti e account di prova
Eliminati contenuti di prova
Disabilitata la visualizzazione degli errori completi
Verificare che gli errori vengano gestiti e mostrati in forma comprensibile
Sicurezza      
Sono stati verificati tutti gli input per evitare bug XSS
Sono stati verificati tutti gli input per evitare bug SQL injection
Gli input mostrati sulla pagina sono stati encodati
I dati passati via form o querystring vengono gestiti e verificati
Gli errori bloccanti vengono gestiti
Verificata la protezione delle aree dietro login o password
Form      
Verificato il funzionamento di ogni form: invio, campi obbligatori e formato dei dati
Verificata la funzione per il controllo dei dati lato client
Verificata la funzione per il controllo dei dati lato server
Verificata la presenza del checkbox per la privacy (obbligatorio)
Verificato che il checkbox per la privacy non sia predefinito come "checked"
Verificato il funzionamento delle procedure di iscrizione
Verificato il funzionamento del login e del logout
Verificato il funzionamento delle procedure di cancellazione
Verificato il funzionamento della ricerca e la rilevanza dei risultati
Verificato il funzionamento dei permalink per le ricerche
Verificato il funzionamento del sistema anti-spam (es. captcha)
Verificato il funzionamento delle procedure opt-in opt-out
Ottimizzazione      
Effettuata una simulazione di carico sul sito/server
Verificata la necessità di un sistema di caching
Comprimere i file JavaScript

Ti consigliamo anche