ブログ(WordPressを使用)において、画像のアップロードに失敗する事象が発生しました。
表示されるエラーメッセージで検索するといくつか対処法が出てきますが、当方の場合はどれも効果がありませんでした。
(そもそも、画像は800×600程度ですし、サーバースペック的にも何の問題もない状況です)
いろいろと調査を重ねた結果、なんとか解消できましたのでその顛末を記事にしたいと思います。
事象
- 自作の画像縮小ツールで縮小した画像(画像Aとする)がブログにアップロードできない
- 上記ツールで縮小しても問題なくアップロードできる画像もある
- 他のブログ(某セキュリティプラグインをインストール済み)には画像Aを問題なくアップロードできる
- 画像Aの元画像を他の画像処理ツールを使って縮小した画像は問題なくアップロードできる
原因
某セキュリティプラグインに実装されているWAFが当該ファイルのアップロードをブロックしていました。
同じプラグインをインストールしている他のブログでは問題なく当該ファイルがアップロードができる理由はちょっと分かりませんでした。
学習するタイプのWAFなので各サーバーの運用実績の違いからパターンファイル的なものに違いが生じているのかもしれません。
対応
WAFの設定を変えることはせず、運用でカバーするようにしました。
- アップロードが失敗した場合は自作の画像縮小ツールではなく別ツールを使う
- 記事の編集に使うPCのグローバルIPアドレスをWAFのホワイトリストに登録してブロックしないようにする
- ブログを動かしているサーバーにプライベートネットワークで接続する(プライベートIPはWAFのホワイトリストに自動的に登録される)
上記の方法で回避することが可能ですが、今回は2番目の方法を採ることにしました。
グローバルIPアドレスをホワイトリストに登録する際の注意点
そのグローバルIPアドレスが自分以外には割り当てられないことを確認する必要があります。
(いわゆる「固定IPアドレス」)
特に注意が必要なのが集合住宅によくあるマンションタイプと呼ばれているインターネット回線です。
この形態は物件にメインとなるルーターが備わっていて、そこから各戸に配線されています。
グローバルIPアドレスはメインとなるルーターに割り当てられているので住人全員が同じグローバルIPアドレスになります。
このグローバルIPアドレスをホワイトリストに登録した場合、住人全員を登録したのと同じことですので注意してください。
うちの回線もマンションタイプなのでそのままではグローバルIPアドレスをホワイトリストに登録できません。
そのため、私はVPS上にVPNサーバーを立てました。
ブログ編集時はVPSにVPNで繋ぐことでそのVPSに割り当てられているグローバルIPアドレスを使うことができるのでこれをホワイトリストに登録しています。
まとめ
WAFによってセキュリティは高まるのかもしれませんが、割と動作に影響を与えることも多いように思います。
当ブログにおいてもWAFが原因でうまく動かなくなっていた事例がありました。
かと言ってWAFを無効にするのもそれはそれでリスクがありますからなかなか難しいところですね。
この記事が同様の症状で困っている方の参考になれば幸いです。
コメント