未加工のSWFファイルのURLにアクセスしようとすると、Chrome 57は表示を拒否し、代わりにダウンロードするかどうかを尋ねます。「この種類のファイルはコンピューターに損害を与える可能性があります」という警告が表示されます。ただし、同じSWFをオブジェクトタグを使用して単純なWebページにラップすると、正常にロードされ、ファイルは正しい「application/x-shockwave-flash」コンテンツタイプで提供されます。
前者のケースを後者とは異なる方法で処理する必要があるセキュリティ上の理由はありますか?
FWIW、私はchrome:// settings/contentでFlash再生を「最初に確認する(推奨)」に設定しています
例: http://www.sjgames.com/dice/cthulhudice/demo.html vs http://www.sjgames.com/dice/cthulhudice/img/CDdemo.swf
この動作は、Chrome now( この動作に関するChromeヘルプフォーラムディスカッション )で、Flash PlayerがClick-to-Enable機能であることと明らかに関連しています。 SWFは直接、クリックして実行するように求めず、代わりにダウンロードするだけです。
chrome://plugins/
に移動して[常に実行を許可する]をオンにすると、HTMLラッパーなしで、ブラウザで以前と同じように直接SWFが直接再生されます。有効にするように促すメッセージが表示されないという事実は、セキュリティ上の決定ではないようです。
前者のケースを後者とは異なる方法で処理する必要があるセキュリティ上の理由はありますか?
言われていることはすべてそうです。
あなたがアバターをアップロードすることを可能にする古いフォーラムなどのウェブサイトがあったと想像してください。画像ファイルをアップロードすることが予想されますが、ファイルタイプチェックが不十分であり、サイト管理者に対してXSS攻撃を実行するために、攻撃者が悪意のあるSWFファイルをアップロードします。このアバター用に生成されるHTMLは、次のようになります。
<img src="http://example.com/user/123/avatar.swf" />
これはSWFとして実行されないため、攻撃者にとってHTMLはありません。そのため、代わりに、攻撃者は管理者をだましてhttp://example.com/user/123/avatar.swf
へのリンクをクリックさせ、SWFdoesをロードし、そのSWFがXSS攻撃を特権ユーザー、およびサイトのPWN。
もちろん、そのようなリスクはFlash Playerに固有のものではありません。 SWFの代わりにSVG内のJavaScriptで同様の攻撃が実行される可能性があります。