🔓
ファイルのアップロード・ダウンロードに潜むセキュリティリスク
ファイルダウンロード機能によるXSS的な攻撃
昔、SIerでバイトをしていたことがあるのですが、実はそこで一度システムの脆弱性を発見したという武勇伝があります。
そのシステムにはファイルのアップロード・ダウンロード機能がついていて、例えば他人のアップロードしたファイルをダウンロードできるようになっていました。一見何の問題も無さそうですが、実はとんでもない脆弱性が潜んでいました。悪意のあるユーザーがHTMLファイルをアップロードすると…ダウンロードしたユーザーのほうで、そのHTMLファイルが開かれてしまうのです。しかもURLはそのシステムのドメイン。認証の必要なAPIにもアクセスし放題です。
対策
僕がバイトしていたSIerのほうでは「ファイルを表示ではなくローカルに保存するようにする」という対策をしてくれました。たぶんa
タグにdownload
属性をつけたんだと思います。でも、もっとシンプルに「HTMLファイルをアップロードできなくする」という対策でもよかったと思います。
補足
ApacheやPHPを使用しているシステムの場合、PHPファイルのダウンロードにも注意です。
Discussion