以前WordPressでブログサイトを作っていた時のこと。
コメント欄でソースコードを入力できるようにしていたんだけど、
制作の段階でいろいろ困難があったので対処法のメモ書きます。
症状
- JavaScriptをコメント欄に書いて「コメントを送信」ボタンを押すと403エラー画面になる
- コード内の”alert”を消すと普通に投稿ができちゃったり
- 「/////」てな感じにスラッシュが2つ以上連続すると403エラーになる
何が問題だったのか
結論から言うと原因はまさかのWAF(ウェブアプリケーションファイアウォール)。
コードの特殊な文字列がセキュリティに引っかかっていたんですかねぇ。
参考サイト
WordPress「Forbidden 403 エラー」のほとんどが解決する3つの対処法|Wordpress奮闘記
WAF(ウェブアプリケーションファイアウォール)を無効にすれば403エラーはなくなる
WAFを無効にすれば403エラーは出なくなりました。
ロリポップサーバーを使っている人は
こんな感じでWAF無効にできます。
えっ…WAF無効にしなきゃいけないの…?
そうですよね。
せっかくの高機能セキュリティ機能なのに、
これだけのために無効にしなきゃいけないのかよって思いますよね。
実際にこのような意見も。
なんということでしょう。せっかくのWAFがこういう理由で止めらてしまうなんて、もったいない。そのうちロリポップ!を契約したらまずWAFを停止すべしなんてバッドノウハウが広まってしまうかもしれませんし、既にそうなっているかもしれません。
ロリポップ上のWordPressをWAFで防御する方法|”HASHコンサルティングオフィシャルブログ
そんなわけで、他になにかやり方がないか調べました。
WAFを有効にしたまま誤検知(403エラー)を回避する方法
「SiteGuard WP Plugin」というセキュリティ強化プラグインを入れているのですが、
このプラグインの設定画面から問題を解決できました。
※ちなみに、ロリポップの公式マニュアルでも
このプラグインのインストールが推奨されています。
インストールしてない人はぜひ調べて、入れてみて。
WordPressの.htaccess編集 / ブログ / マニュアル – レンタルサーバーならロリポップ!
1.SiteGuard WP Pluginの設定画面から「WAFチューニングサポート」をクリック
2.有効/無効をONにし、「新しいルールを追加」をクリック
※「この機能を使用するには、WAF (SiteGuard Lite)が、サーバーにインストールされている必要があります。」とあります。
つまりロリポップでWAFが有効になっていないとダメということ
3.項目を入力し、「保存」で設定完了
ロリポップのWAF設定>ログ参照で今まで起きたエラーのリストを見ることができます。
時間などを参考に該当するエラーの欄を見て、項目を入力してください。
以上でコメントができない問題を解決することができると思います。
スポンサードリンク