Bypassare il filtro XSS sostituendo i caratteri?

1

È possibile ignorare un filtro XSS che sostituisce i caratteri dannosi? Ho preparato questo filtro:

searchTextField.replace(/</g, " ")
    .replace(/>/g, " ")
    .replace(/"/g, " ")
    .replace(/'/g, " ")
    .replace(/=/g, " ")
    .replace(/0\/g, " ")
    .replace(/\/g, " ")
    .replace(/\//g, " ")
    .replace(/  +/g, " ");

L'output appare all'interno del tag span come <span>TextHere</span> . La mia semplice domanda: può essere aggirata?

    
posta Shiri 11.11.2018 - 11:45
fonte

1 risposta

2

Sì. Questo è sfruttabile in alcuni browser tramite le tecniche UTF-7 e altri browser più vecchi tramite caratteri Unicode surrogati (alcuni vecchi browser consentono di utilizzare caratteri "equivalenti" strani per < e > , ad esempio).

Non utilizzare il filtro della lista nera. Il filtraggio e la codifica sono problemi difficili e non dovresti provare ad affrontarli da soli. Devi essere in grado di codificare contestualmente il contenuto per il tipo di contenuto e il contesto specifico a cui stai inviando il contenuto. Prendi in considerazione l'utilizzo di una libreria come Riforma OWASP , che supporta PHP, Python, Java, ASP e ASP. Piattaforme NET.

    
risposta data 11.11.2018 - 12:25
fonte

Leggi altre domande sui tag