Per quali tipi di contenuto è consigliato impostare l'intestazione X-XSS-Protection?

6

Si potrebbe probabilmente suggerire di impostare questa intestazione per tutte le risposte da un server web (sto pensando a value="1; mode = block").

Tuttavia, ha senso impostarlo quando serve, ad esempio, le immagini? File CSS? Risposte JSON effettuate da chiamate AJAX?

XSS Auditor si preoccupa della presenza di questa intestazione durante l'elaborazione di queste risposte?

    
posta oldbam 09.02.2017 - 19:22
fonte

2 risposte

4

Se decidi di utilizzare X-XSS-Protection , dovresti impostarlo per qualsiasi pagina in grado di eseguire contenuti di script attivi. I formati non eseguibili come CSS o immagini non sono influenzati dall'intestazione.

Si noti che le immagini SVG, nonostante siano in grado di eseguire il codice di script, a quanto pare non rispettano l'intestazione in Chrome, il che suggerisce che si applica solo ai documenti HTML. Prova del concetto:

<?php
header('X-XSS-Protection: 1; mode=block');
header('Content-type: image/svg+xml');
?>
<?xml version="1.0"?>
<svg xmlns="http://www.w3.org/2000/svg">
<?php echo $_GET['foo']; ?>
</svg>

Eseguilo nel tuo browser in questo modo: http://localhost/xss.php?foo=<script>alert(1)</script>

Nei miei test, il JS riflesso dal parametro viene eseguito anche se il filtro XSS è attivo. Ma se cambi il tipo di contenuto in text/html , il JS sarà filtrato correttamente.

(Si noti inoltre che l'uso dell'intestazione X-XSS-Protection è controverso e può si traducono in nuove vulnerabilità ed è per questo motivo che Facebook ha deciso di disattivare completamente l'auditor XSS ed essere consapevole che l'impostazione dell'intestazione non sostituisce l'uscita corretta dell'output.

    
risposta data 09.02.2017 - 21:57
fonte
1

Questa intestazione ha senso per qualsiasi pagina che sia in grado di eseguire Javascript. Ciò include i file HTML e forse SVG e XML, ma non i file Javascript o le risposte JSON, perché questi non vengono eseguiti dal browser semplicemente visitandoli.

    
risposta data 09.02.2017 - 21:24
fonte

Leggi altre domande sui tag