• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Guida PHP Invio di Cross Site Scripting XSS attraverso un campo di testo o texarea.

MarcoGrazia

Nuovo utente
Autore del topic
25 Agosto 2015
23
0
Miglior risposta
0
Molti, lo faccio anche io purtroppo non teniamo conto che certe tecnologie sono insicure per definizione, ad esempio l'HTML, e quando una tecnologia è insicura per default, tutto ciò che ne consegue è insicuro!

Però qualche cosa si può fare!

Mettiamo un classico caso di un form per inviare un messaggio con valore di ritorno, per esempio una text box:
HTML:
Perfavore, Entra oppure Registrati per vedere i codici!
Chiaramente chunque può inserire un qualsiasi exploit sperando che vada a buon fine, la qual cosa è meno incredibile di quanto si pensi; perdersi dietro il controllo degli errori degli altri è quanto di più noioso ci possa essere e alla lunga stanca.
Ma qualche cosa si può fare ad esempio in questo caso usare funzioni di wrapping come proposto dal OWASP in
Perfavore, Entra oppure Registrati per vedere i Link!
.

In pratica si tratta di creare in PHP due funzioncine di wrapping che controlla quanto inviatole, vediamo come:
PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

Quando i valori vengono tornati nella text box non tornano direttamente dall'array globale ma passano dalla funzione xecho() che la passa a xssafe() che li modifica e ne elimina le "pericolosità", in pratica faremo così:
HTML:
Perfavore, Entra oppure Registrati per vedere i codici!
Ovviamente questo sistema non impedisce altri exploit ma ne mitiga l'eccesso, elementi pericolosi nell'HTML ce ne sono molti, ad esempio gli attributi src e href di elementi come LINK, A, IMG vi si possono passare file PHP e interi javascript che andranno in esecuzione, ma per ovviare a tutto ci vuole un secolo :-)
 
  • Like
Reactions: 1 person