Perché i browser consentono i reindirizzamenti dalle pagine HTTPS a URL non sicuri che attivano un download?

3

Sappiamo che i browser non consentono il contenuto misto attivo nelle pagine pubblicate tramite HTTPS. Questo perché il codice JavaScript potrebbe essere modificato da un MitM attivo che comprometterebbe la sicurezza della pagina. Molti browser bloccheranno inoltre il caricamento di immagini / altri contenuti passivi da una fonte non sicura per un numero di motivi .

Perché, quindi, è possibile che un sito pubblicato su HTTPS reindirizzi a un URL HTTP con un'intestazione Content-Disposition: attachment o Content-Type: binary/octet-stream che impone un download?

Ad esempio questa pagina di download viene servita inizialmente HTTPS ma reindirizza l'utente a un URL di download non sicuro. Chrome scarica automaticamente in modo cieco il file e non presenta alcuna informazione sulla sua origine. Firefox fa mostra l'origine nella sua finestra di download, ma consente comunque di continuare il download e non avvisa affatto l'utente:

Dato che un utente che scarica e esegue codice arbitrario come questo (che credono provenire da un sito sicuro) può fare molto più danno di qualche JavaScript iniettato, perché i browser consentono questo comportamento? Perché questi download non sono obbligatori per essere offerti in modo sicuro come gli script inclusi?

    
posta Adam Williams 19.12.2016 - 22:26
fonte

1 risposta

2

Riguarda il rispetto della scelta dell'utente. In generale, vuoi dare all'utente la scelta di decidere cosa vogliono fare.

Le applicazioni scaricate sono inerti. Solo perché hai scaricato un virus non danneggi immediatamente il sistema finché non lo esegui.

In ogni caso, con le applicazioni scaricate da internet, l'OS chiederà all'utente se desidera consentire l'esecuzione dell'applicazione. In Windows, viene visualizzata una finestra di prompt, in Linux, è necessario impostare il permesso di esecuzione. Inoltre, le applicazioni antivirus eseguono la scansione delle applicazioni scaricate che vengono scritte / lette. Non c'è bisogno che il browser chieda all'utente questo.

Windows supporta anche la firma crittografica che può essere utilizzata dagli utenti attenti alla sicurezza per dimostrare l'integrità dell'applicazione scaricata. In Linux, questo viene fatto dal gestore pacchetti.

Perché questo non si applica a JavaScript? Bene, in genere gli utenti non scelgono di eseguire singoli file JavaScript, ma piuttosto sono un effetto collaterale della visita di un sito. E con JavaScript da fonte non criptata, è banale per un aggressore MITM modificare lo script senza che l'utente lo sappia.

    
risposta data 20.12.2016 - 01:02
fonte

Leggi altre domande sui tag