画像変換系SaaSを使うか否か、を考えたときのただの雑記です。
今回考える機能
ざっくりとした要件
『ユーザーが任意でアップロードした画像を保存したい』
という要件があるとする。
考えなければいけないこと
仕様面
- 画像ファイルの形式は何を許可するか
- 画像ファイルの最大サイズはどうするか
- 画像ファイルを受け取ったあとに加工する必要があるか
セキュリティ面
- Exchangeable image file formatをどうするか
- 悪意のあるファイルをどう受け取らないようにするか
- 悪意にあるファイルを受け取ったときにどうすればいいか
この場合にImageMagickを使うPros/Cons
Pros
- 自前で敷設できるので、オンプレでもクラウドでも置ける
- 豊富な関連ライブラリ
- 導入事例が多い
Cons
- パッチが多いので、お守りを強く気にする必要がある
- 対応する画像が多いがゆえに脆弱性報告が多く、真に対応が必要なものを特定しづらい
- 悪意のあるコードが入った画像に変換を掛けることもあるため、実Webアプリケーションと同居させるのは怖く、利用アプリケーションとは切り離したサーバにImageMagickを置く必要がある