lunedì 25 aprile 2011

Guida Pubblicare un sito web lezione 4: Programmazione


Programmazione, sicurezza, debug e form


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 eventualiidentificativi 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 servergrazie 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:
 OKKOND
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

e-Commerce e Back Office


e-Commerce

Nel caso di un negozio online il livello dei controlli pre e post pubblicazione dovrebbe rasentare la paranoia. :-) Questo perché è davvero facile perdere una vendita per mancanza di chiarezza, scarsa affidabilità o piccoli malfunzionamenti.
Tra le cose da controllare c'è la presenza di nome, fotografia e descrizione in tutti i prodotti a catalogo. Allo stesso modo bisogna verificare la correttezza del prezzo dato che, per legge, una volta acquistato deve rimanere tale. Sempre sui numeri bisogna confermare le modalità di accesso a prezzi personalizzati come ad esempio codici sconto o listini dedicati. E a proposito di acquisti è bene assicurarsi che la procedura di sincronizzazione con il magazzino funzioni a dovere, per evitare la vendita di prodotti non in giacenza.
In generale conviene verificare il processo completo di un ordine in maniera da coprire tutte le opzioni disponibili come modalità di pagamento, tipologia di spedizione, etc. Nello specifico, dove presente, è bene porre attenzione particolare alla procedura di registrazione dell'utente ed al conseguente opt-in.
Tra i controlli da non dimenticare c'è quello sulle spese di spedizione che dovranno variare in base ai criteri previsti (corriere, modalità, nazione, peso, etc), ma anche la verifica su tutti i metodi di pagamento disponibili (bonifico, bollettino, carta di credito, etc). Una volta pubblicato il sito è bene completare un pagamento reale per ogni modalità prevista, simulando quindi un ordine ed utilizzando il gateway di produzione al posto della sandbox. In questo modo si riesce anche a verificare il corretto accredito del venduto.
Una volta ricevuta la notifica di pagamento è possibile controllare il buonfunzionamento degli automatismi per l'evasione dell'ordine. Nel caso di vendita di un bene materiale bisogna attivare e seguire tutta la logistica, mentre nel caso di vendita di un bene immateriale occorre verificare l'accesso immediato al servizio o ai file acquistati.
Per quanto concerne la comunicazione con il cliente è buona norma accertarsi del funzionamento di tutte le mail automatiche, controllando i testi ed ogni link in esse contenuto (in particolare quello per la conferma dell'ordine o l'opt-in della registrazione). Allo stesso modo occorre esser certi che i messaggi di conferma ed i messaggi di errore siano chiari, coerenti e comprensibili.
In termini di supporto, dove presente, bisogna verificare il funzionamento della Live Chat e dei link alle pagine informative principali come le Condizioni di vendita, i Contatti e le FAQ.

Back Office

La maggior parte dei siti realizzati negli ultimi anni prevede una zona riservata attraverso la quale il cliente può gestire in autonomia i contenuti presenti sul sito (CMS). In tal caso è bene verificare il correttofunzionamento di ogni Pannello, controllando prima di tutto la protezione e le modalità di accesso.
Dopo aver eliminato le credenziali di sviluppo bisogna effettuare una verifica su tutte le procedure previste: elenco, inserimento, modifica, cancellazione di ogni elemento previsto. Durante questo test si controlleranno anche i singoli form, i dati obbligatori, il formato dei dati, i permessi di scrittura, gli upload e le funzionalità particolari.

Punti da controllare

Ecco i punti da verificare tramite la checklist sugli aspetti visti in questa lezione:
 OKKOND
e-Commerce   
Verificata la presenza di tutti i prodotti con nome, fotografia e descrizione
Verificata la correttezza dei prezzi di ogni prodotto
Verificata la giacenza ed il meccanismo di sincronizzazione col magazzino
Verificate le modalità per accesso a prezzi differenti (es. codici sconto, listini dedicati, etc)
Verificato il processo completo di un ordine
Verificata la procedura di registrazione utente e l’opt-in
Verificato l’eventuale link per la conferma dell’ordine
Effettuato un pagamento di test per ogni modalità disponibile (non gateway sandbox)
Verificato l’accredito reale per pagamento online
Verificato l’automatismo per l’evasione in tempo reale dopo il pagamento online
Verificata la possibilità di accedere al servizio o ai file dopo il pagamento online
Verificate tutte le mail automatiche ed il loro contenuto
Verificate le spese di spedizione per i criteri previsti (corriere, modalità, nazione, peso, etc)
Verificata la coerenza dei messaggi di risposta e di errore
Verificato il funzionamento di servizi di supporto in tempo reale (es. Live Chat)
Verificata la conferma o i tempi del modulo COM6BIS per il Comune (solo Italia)
Back Office   
Verificata la protezione del Pannello di controllo (ed eliminate le credenziali di sviluppo)
Verificate le procedure di elenco, inserimento, modifica, cancellazione di ogni elemento
Verificati tutti i form, i dati obbligatori, le funzionalità particolari

0 commenti:

Posta un commento

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Blogger Templates