tizianocavigliablog
In piedi, campeggiatori, camperisti e campanari!

AJAX e (in)sicurezza 06.08.06

Ogni tanto viene riscoperta l'acqua calda, ma non sempre tutto il male viene per nuocere.
In fondo repetita iuvant.

Si da il caso che il responsabile di SPI Dynamics, Billy Hoffman, nel corso di un seminario alla Black Hat security conference ha ribadito che non tutte le applicazioni basate su AJAX sono sempre linde e splendenti.
Hoffman afferma che tali applicazioni web, se non adeguatamente progettate, possono essere estremamente pericolose e fornire validi appigli a chiunque abbia intenzione di danneggiare l'applicazione o gli utenti.

Secondo i dati riportati, troppi programmatori pongono poca attenzione alla sicurezza nel momento di progettare il loro codice AJAX, favorendo la vulnerabilità di tale strumento.
Un caso eclatante è stato il worm Yamanner che ha duramente danneggiato la sezione webmail di Yahoo!.

L'intervento di Hoffman, "AJAX (in)security", mirava ad un più ampio concetto di rischio legato ad exploit e tecniche di hacking relativi a cross-site scripting.
Come sempre quindi qualità, sicurezza, usabilità ed accessibilità davanti a tutto.

Crosspost su Rhadamanth.net Weblog, Voice over IT.

AJAX 06.04.06

AJAX è l'acronimo di Asynchronous JavaScript and XML.
Si tratta di una tecnica, AJAX non è un linguaggio, per sviluppare applicazioni web dinamiche usando una combinazione di:

  • XHTML e CSS: per lo sviluppo del layout e della grafica;
  • DOM: è lo standard ufficiale del W3C per la rappresentazione di documenti strutturati come modello orientato agli oggetti;
  • XMLHttpRequest: è un set di API, ovvero un insieme di procedure disponibili al programmatore, di solito raggruppate a formare un insieme di strumenti specifici per un determinato compito, che possono essere usate da linguaggi di scripting (come JavaScript, VBScript, ecc.) per trasferire dati da e verso un web server tramite il protocollo HTTP.
    XMLHTTP possiede dunque il vantaggio di permettere l'aggiornamento dinamico di una pagina web senza la necessità di ricaricare l'intera pagina.

Al contrario delle applicazioni web tradizionali, AJAX fa sì che si possano inviare richieste al web server per ottenere solo i dati che sono necessari, generalmente usando SOAP e JavaScript per mostrare la risposta del server nel browser.

Questo fa sì che, al contrario delle applicazioni web tradizionali, si ottengano risultati più velocemente dato che la quantità di dati interscambiati fra il browser ed il server si riduce.

Purtroppo ci sono anche dei lati negativi.
Non tutti i browser, e le relative versioni, interpretano allo stesso modo i linguaggi di scripting, o implementano correttamente il DOM.
Per cui vale sempre la regola di progettare applicazioni testandole sulla più ampia gamma di browser ed eventualmnte provvedendo a fornire valide alternative in caso di scarsa compatibilità.

Vale la pena tenere a mente che l'uso massiccio di AJAX può generare gravi problemi di accessibilità, tali da compromettere la corretta navigazione e fruizione del sito e dei suoi dati.
Come sempre la regola aurea del "progettare con criterio" permette di arginare questi inconvenienti.

Crosspost su Rhadamanth.net Weblog, Voice over IT.