XSS - eventuali implementazioni per codificare ogni output ricevuto dal server?

0

Mi stavo chiedendo - Supponiamo ad esempio di avere un'applicazione legacy che sia vulnerabile all'XSS - ci sono delle librerie (si spera sul lato client) in grado di catturare e manipolare tutti gli output restituiti dal server e potenzialmente codificarli? (o qualsiasi altro metodo che aggirare ogni riga di codice e codificare / decodificare i dati.

Il lato client è puro javascript, sto cercando di trovare correzioni "rapide" invece di riscrivere e modificare la libreria laterale del client in altri linguaggi (come angolare) che gestiscono automaticamente tali problemi.

    
posta ArielB 16.07.2018 - 12:13
fonte

1 risposta

1

Dipende molto dal codice lato client se questo è possibile. Per un'applicazione a singola pagina, in cui solo il codice di framework standard viene caricato direttamente dal server, le chiamate lato client vengono utilizzate per estrarre qualsiasi altro dato richiesto, è banale - basta collegarsi alle chiamate lato client e assicurarsi che siano analizzate correttamente prima in uso nella pagina.

Tuttavia, in molte vecchie applicazioni, il server fornisce direttamente i dati, anche se è poi spostato in posizione con codice lato client. In questo caso, qualsiasi codifica lato client dovrebbe solo attivare dopo il contenuto è stato inserito nella pagina e, probabilmente, eseguito.

Esempio di SPA (pseudocodice):

<html>
  <script>
    clientContent = server.load(serverContent);
    encode(clientContent);
    document.body = clientContent; // raw content only included after encoding
  </script>
  <body>
  </body>
</html>

Esempio di rendering del server:

<html>
  <body>
    serverContent // raw content executes here
  </body>
  <script>manipulateBody()</script>
</html>

In termini di metodi di codifica, dipende dal contesto dei dati vulnerabili - per i contesti HTML, guarda cose come link ma tieni presente che saranno necessari caratteri di escape diversi se le vulnerabilità XSS si trovano all'interno dei blocchi di script, ad esempio.

    
risposta data 16.07.2018 - 13:25
fonte

Leggi altre domande sui tag