※本記事はプロモーションを含みます
WordPressで画像をアップロードしようとしたら403エラー。記事の下書きは普通に保存できるのに、画像だけ「閲覧できません」で弾かれる。この記事は、その原因がセキュリティ機能(WAF)の誤検知やったという実話と、ConoHa WINGでの解決手順の記録。
先に結論だけ言うと、悪いことは何もしてなくても403は出る。俺の場合、自分のブログのログに、俺自身が「攻撃者」として記録されとった。
ある日突然、画像だけアップロードできなくなった
6月の中頃。AIと一緒に、ブログの画像を自動でアップする仕組みを作ってた時の話。記事の下書きは問題なく保存できる。なのに画像を送った瞬間だけ「403 閲覧できません」。
当時の俺はWAFなんて言葉も知らん。せやから真っ先に疑ったのは自分の作った仕組みのバグ。何回も見直して、書き方を変えて、また403。ここでだいぶ時間を溶かした。
今思えばヒントは最初から出とった。「記事は通るのに画像だけアカン」。同じサーバーに送ってるのに片方だけ弾かれるなら、通り道のどこかに中身を見て選別しとるやつがおる、ってことやから。
ちなみに俺のきっかけは自動化の仕組みやったけど、管理画面から普通に画像をアップしてる人でも、同じ誤検知で403が出ることがある。見るべき場所はこの先に書く内容と同じ。
そもそも403エラーって何?
サーバー側の「あなたの要求は受け付けません」という拒否反応。ページが存在せえへん404とは別もんで、403は「あるけど、あんたには渡さん」。
つまり、こっちの操作ミスやなくて、サーバー側の門番の判断で止められとる。
犯人はWAF。自分のブログに「攻撃者」として記録されとった

WAF=Web Application Firewall。不正アクセスを自動でブロックしてくれる門番で、ConoHa WINGには標準で入ってて最初からONになってる。普段は完全に空気で、存在すら意識せんかった。
どうやって気づいたか
調べてるうちに、ConoHaのコントロールパネルにWAFの検知ログがあると知って開いてみた。そしたら「SQLインジェクション」っていう攻撃の検知記録がずらーっと並んどる。え、うちのブログ攻撃されてるん?と一瞬ビビった。
よう見たら、攻撃元のIPアドレスが全部自分。攻撃対象は画像アップロードの送り先。つまり、俺が画像を送るたびに、WAFがJPGファイルの中身を攻撃コードと誤解して、片っ端からブロックしとった。
画像ファイルの中身はただのデータの羅列やけど、たまたま攻撃コードっぽい並びに見えることがあるらしい。門番が真面目すぎた、というオチ。
解決の手順=WAFのログから「除外」する

ConoHa WINGでの操作はこれだけ。
- ConoHaコントロールパネルにログイン
- サイト管理 → サイトセキュリティ → WAF
- 表示切替で「ログ」を開く
- 自分のIPからの誤検知の行を見つけて「除外」ボタンを押す
除外ボタンは1回押すと、同じパターンの検知がまとめて除外扱いになる。俺の場合、押した直後に画像アップを試したら一発で通った。まる2日引きずった403が、ボタン1個で終了。
押す前に1個だけ確認してほしいこと
除外していいのは「攻撃元が自分のIP」の行だけ。知らんIPからのXSSやらOSコマンドやらの検知は、本物の攻撃の可能性があるから絶対に除外したらアカン。見分けポイントは攻撃元IPが自分かどうか。自分のIPは「確認くん」みたいな確認サイトですぐ調べられる。
ConoHa WING特有の注意点
- WAF自体はONのまま。切る必要はないし、切ったらアカン(守りが消える)
- 除外は「除外中」タブからいつでも元に戻せる
- 接続IPが変わると同じ誤検知が再発することがある。その時も同じ手順で除外すればOK
同じ症状で困ってる人へ
「403=自分が何か悪いことした」に見えるけど、実際は門番の誤検知って結構ある。記事は保存できるのに画像だけ弾かれるなら、まずWAFのログを見るのが最短ルート。
ConoHa以外のサーバーを使ってる人も、WAF自体は大体標準で入ってる。管理画面のセキュリティ設定にログや除外の項目があることが多いから、「使ってるサーバー名 WAF 除外」で検索したら各社の手順にたどり着けるはず。
ちなみに俺のブログはConoHa WING
で動かしてる。今回みたいなトラブルはあったけど、初心者の俺でもログ画面から自分で解決までたどり着けたのは、管理画面が分かりやすかったおかげやと思ってる。開設手順は【完全ガイド】WordPressブログの始め方|初心者がConoHaで1時間開設する全手順に全部まとめた。
「調べても解決せえへん、誰かに直してほしい」って場合は、ココナラでWordPressの表示崩れ・不具合修正のサービスもやってるんで、よかったらどうぞ。