C'è qualche vantaggio in termini di sicurezza nello stripping dei soli tag 'script' che contengono codice?

0

Sulla rete aziendale di un cliente qualcosa sta eliminando tutti gli elementi di <script> che contengono codice, ad esempio cose come <script type="text/javascript">do_something();</script> saranno semplicemente rimosse dalla risposta del server prima che raggiunga il browser. SSL non aiuta (e, naturalmente, il certificato appare danneggiato anche se è perfettamente valido).

D'altro canto, gli elementi HTML come <script src="/something.js"></script> non vengono rimossi e vengono eseguiti nel browser bene.

La mia domanda:

C'è qualche vantaggio in termini di sicurezza derivante da tale rimozione?

Certamente non riesco a vederne uno ... XSS mi viene in mente, ma se qualcuno sta per fare un attacco XSS, probabilmente proverà la variante con src , no?

E una domanda a parte: quale software potrebbero usare? O meglio ancora, cosa posso usare per emulare quella situazione sul mio Mac o PC dove avviene lo sviluppo?

    
posta frnhr 20.03.2015 - 18:16
fonte

1 risposta

9

No, rimuovere i tag <script> è inutile perché potresti ancora eseguire un payload javascript come questo:

<input onmouseover=prompt(document.cookie)>

E anche il bypass del filtro dovrebbe essere abbastanza semplice, immagina cosa succederebbe se un payload come questo avesse inviato:

<scr<script>ipt> 

Per quanto riguarda il tipo di software che stanno utilizzando, beh, non ci sono abbastanza informazioni per determinarlo. Quello che potresti fare è richiedere il file robots.txt e vedere cosa questo rivela.

Per simulare / testare questo, potresti usare il seguente codice come esempio:

<?php

if (isset($_GET['q']))
{
   $var = $_GET['q'];
   $var = str_replace(array("<script>", "<script src"), "", $var);

   echo $var;
} 
else 
{
   echo "GET parameter 'q' is not set!";
   die();  
}

?>

La soluzione a questo problema è la convalida dell'input e la codifica dell'output. Ecco una risorsa OWASP che consiglio di leggere: link

    
risposta data 20.03.2015 - 19:27
fonte

Leggi altre domande sui tag