[2]
HTTP/1.1 200 OK Content-Length: 238 Content-Type: text/html X-Download-Options: noopen Content-Disposition: attachment; filename=untrustedfile.html
>>1
[3] 類似した機能として、 IE6 で DownloadOptions が既に存在していました。
DownloadOptions
IE では、ファイルをローカルに(明示的に)保存することなく開くという機能があります。ダウンロードリンクをクリックすると出てくるダイアログの「開く」ボタンを押下したときに働く機能ですね。実はこの機能でファイルを開いた場合、そのファイルの内容はダウンロード元のウェブサイトのコンテキストで実行されるらしいです。悪意のあるスクリプトなんかをこの方法で開いてしまうと、インジェクションなんかが可能になるってことですね。 これを防ぐためのレスポンスヘッダが存在していて、それがX-Download-Options: noopenというレスポンスヘッダです。このヘッダをレスポンスに付与しておくと、ユーザは当該のファイルを直接「開く」ことができなくなり、明示的にローカルにダウンロードする他なくなります。
IE では、ファイルをローカルに(明示的に)保存することなく開くという機能があります。ダウンロードリンクをクリックすると出てくるダイアログの「開く」ボタンを押下したときに働く機能ですね。
実はこの機能でファイルを開いた場合、そのファイルの内容はダウンロード元のウェブサイトのコンテキストで実行されるらしいです。悪意のあるスクリプトなんかをこの方法で開いてしまうと、インジェクションなんかが可能になるってことですね。 これを防ぐためのレスポンスヘッダが存在していて、それが
X-Download-Options: noopen
というレスポンスヘッダです。このヘッダをレスポンスに付与しておくと、ユーザは当該のファイルを直接「開く」ことができなくなり、明示的にローカルにダウンロードする他なくなります。