Questo comportamento è apparentemente correlato al modo in cui Flash Player è una funzione click-to-enable in Chrome ora ( Discussione del forum di assistenza di Chrome su questo comportamento ). Se visiti direttamente un SWF, non ti chiederà di fare clic per eseguire, lo scaricherà semplicemente.
Se dovessi andare a chrome://plugins/
e spuntare "Consenti sempre di eseguire", riprodurrebbe il SWF come in precedenza normale nel browser, senza il wrapper HTML. Il fatto che non ti chieda di abilitarlo non sembra essere una decisione di sicurezza.
Is there any security reason why the former case should be treated differently from the latter?
Tutto ciò che viene detto, sì, penso che ci sarebbe.
Immagina che ci fosse un sito web, ad esempio un vecchio forum, che ti consente di caricare un avatar. Si prevede che caricherete un file immagine, ma il controllo del tipo di file è scadente e un utente malintenzionato carica invece un file SWF dannoso per eseguire un attacco XSS sugli amministratori del sito. Ora, l'HTML generato per questo avatar potrebbe essere simile a questo:
<img src="http://example.com/user/123/avatar.swf" />
Questo non funzionerà come un SWF, quindi nessun HTML per l'attaccante. Così, invece, l'hacker induce gli amministratori a fare clic su un link a http://example.com/user/123/avatar.swf
in cui il SWF viene caricato e che SWF esegue l'attacco XSS come utenti privilegiati e PWN sul sito.
Ovviamente, tale rischio non è esclusivo di Flash Player. Un attacco simile potrebbe essere eseguito con JavaScript all'interno di un file SVG anziché di un file SWF.