Cross-site scripting

El **cross-site scripting** (**XSS**) a l'è 'na vulnerabilità che la revarda i sitt web dinamich cont ona gestion fallada di input di utent che permetten a on attaccant de giontà el sò codes ai paginn legittim per compì di attacch 'me el robà di informazion, mett di fals schermaa de login o doperà i resors de calcol del sistema de l'utent. A hinn, al didincoeu, vun di mezz de attacch pussee doperaa.

## Fonzionament
L'XSS a l'è dovuu a 'n elaborazion e presentazion de 'n imput ricevuu de 'n utent senza elaboràll e cont la restituzion diretta ai browser che 'l domanden. A l'è dònca possibil, in 'sta situazion, caregà abusivament di codes HTML e JavaScript, che per el browser riven del sitt original, che pòden fà di azion cattiv 'me modifegà i form de la pagina per robà i dacc de access, robà i cookie de l'utent, cambià di informazion del sitt, registrà i informazion digitaa, provà a menà al download di malware o fà on defacement.

## Tipi
### Rifless
In l'attacch rifless, ciamaa anca minga persistent, l'attacch a l'è faa in sul browser de l'utent. Per esempi, se pensom a 'n sitt cont on parameter GET de tipo:

http://sitt.net/search.php?search=paròlla de cercà

A l'è dònca, se la paròlla de cercà a l'è dada foeura direttament a l'utent in d'ona schermada dopo senza filter, assee modifegà el parameter cont on script, pu o manch offuscaa, 'me in l'esempi:

http://sitt.net/search.php?search=alert('xss');

Che 'l stamparia a monitor on alert JavaScript con scritt "xss".

### Persistent
In d'on attacch persistent, inveci, el script cattiv a l'è salvaa in d'ona quaj part del server.

Per esempi se pò scriv on comment cont on script e, se l'è mìnga filtraa, i browser de quej che visiten la pagina eseguen el script.

Se gh'è 'na fonzion del tipo:

```php
echo "<h4>Darree comment del sitt</h4>";
echo latest.database;
```


E l'è mittuu dent in d'on comment:

```html
<script> /* Foo vergòtt de gramm */ </script>
```


El codes HTML stampaa el sarà:

Darree comment del sitt
 /* Foo vergòtt de gramm */ 


E 'l script el sarà consideraa part de la pagina del browser.

### Fondaa in sul DOM
In d'on attacch fondaa in sul DOM l'attacch a l'è in l'ambient de la pagina, ossia indova el server el gh'ha nanca la possibilità de vedè che 'l gh'è staa 'sto attacch, vist che per el server a l'è eseguii domà el sò script legittim, la che attivazion la attiva el script cattiv.

### Autonom
On attacch autonom (in ingles *Self-XSS*) a l'è 'n attacch de ingegneria sociala miraa a menà 'n utent a eseguì on codes cattiv in del sò browser. A l'è 'na tecnega doperada soratutt in di social network, cont di promess de ciappà di fonzion pussee o di messagg fals di contatt.

## Prevenzion
### Sanificazion de l'input
La sanificazion de l'input a l'è la trasformazion o l'eliminazion di caratter tipich de l'HTML o del JavaScript per impedì de caregà vergòtt irregolarment. I tecnegh pòden vèss combinaa: Per esempi se pòden *escapaa* i caratter `<` e `>`, ossia scrivej in codes HTML per fàj intepretà no e permett de scriv on codes HTML de esempi e scancellà on eventual script.

### Limitazion di tag
La limitazion di tag a l'è doperada indova a l'è necessari permètt de doperà 'na quaj fonzion de l'HTML, tipicament quej de formattazion del test, senza permett de doperà i tag pussee pericolos 'me ,  o . A bon cunt a l'è no on sistema fonzionant totalment, degià che gh'è el ris'c che on codes offuscaa el sia caregaa istess.

### Content Security Policy
Content Security Policy a l'è on parameter che 'l pò vess mittuu  in di header HTTP de 'na pagina web per dì al browser de fidàss domà di contegnuu che gh'è in d'ona lista dada, che 'l impediss dònca de caregà di script o iframe di alter paginn mìnga fidaa.

## Riferiment
*Excess XSS - A comprehensive tutorial on cross-site scripting
*Cos'è una truffa XSS?
*Tipologie XSS 
*DOM Based XSS 
*THE REAL IMPACT OF CROSS-SITE SCRIPTING

## Varda anca
*SQL injection
*Self XSS
*Server Side Template Injection