In che modo includere un prefisso magico a una risposta JSON per impedire gli attacchi XSSI?

9

Mentre lavoravo a un progetto che utilizzava l'API REST per Gerrit Code Review, ho notato che facevano qualcosa che pensavo fosse strano Fonte :

To prevent against Cross Site Script Inclusion (XSSI) attacks, the JSON response body starts with a magic prefix line that must be stripped before feeding the rest of the response body to a JSON parser:

)]}'
[ ... valid JSON ... ]

In che modo il prefisso del corpo della risposta con caratteri apparentemente casuali funziona per prevenire XSSI?

    
posta ecnepsnai 13.01.2016 - 21:57
fonte

1 risposta

7

XSSI funziona provando a valutare una risposta JSON come Javascript e la sequenza )]}' lo impedisce producendo in modo affidabile un errore di sintassi.

Sono state proposte contromisure diverse contro l'inclusione di script indesiderati, ma l'inserimento di un ciclo infinito (ho visto for(;;) utilizzato nelle API di Facebook) o la produzione di un errore di sintassi (alcune API di Google utilizzano )]}' come nell'esempio) ha dimostrato di essere sufficientemente sano ed è retrocompatibile. Questo articolo ha alcuni esempi aggiuntivi.

Se non sei sicuro del motivo per cui XSSI è una minaccia in primo luogo e viola la politica della stessa origine , leggi al riguardo qui .

    
risposta data 13.01.2016 - 23:42
fonte

Leggi altre domande sui tag