[WordPress]WAF導入で501エラー.公開・下書きできない原因と対処法|せかWebホームWordPress全般アフィリエイトASPレンタルサーバーソフトウェアお問い合わせせかWeb本ページはアフィリエイトプログラムによる収益を得ています。2019年10月2日WordPressで記事を作成し、投稿しようと「公開」ボタンを押下した瞬間、「501エラー」が出現することがあります。これは、記事を新規で作成・公開する場合に限らず、既存ページを更新する際、下書きとして保存する際、様々な場面で起こりうる障害です。この501エラーが発生するのか、どうすれば501エラーを解消することができるのか、原因と対処法をご紹介します。Implemented」。Implemented」の意味は、サーバーに実装されていないリクエストを送ってしまったことにより、サーバーが「そのリクエストはサポートしていない」というレスポンスを返したということです。これだけでは何を言っているのかわからないと思うので、詳しく説明します。(エラーについての説明なので、原因と対処法のみを知りたい人は飛ばしてください。)501エラーが起こると、以下のような画面が表示されます。以下の例はエックスサーバー(XSERVER)ですが、サーバーによって表示のされ方が異なります。Implemented」アクセスしようとしたページは表示できませんでした。このエラーは、実装されていないメソッドでのアクセスがあったことを意味します。以下のような原因が考えられます。・対応していないメソッド(MOVE/COPYなど)を使用した。phpの仕組みを説明すると長くなってしまうので割愛しますが、私たちがWordPressで編集して投稿したものがネット上で見れるのは、「サーバー」にファイルをアップロードしているからです。テキストも記事も、更新も新規記事も、ファイルを送信することでサーバー上に蓄積されます。サーバーもまた、プログラムで動いています。メソッドという動作を意味するプログラムが無数にあり、リクエストという命令を送ることで、そのメソッドを呼び出す(使用する)ことができます。私たちが記事を投稿または更新、下書きをするときボタンを押しますよね?これは、「これをサーバーにアップしてほしいんだけど、お願いできますか?終わったら、完了画面を出してください。」というリクエストをサーバーに対して送っているのです。サーバーは、そのリクエストをもらった段階で、対応したメソッドを用い、テキパキと作業をしてくれます。問題がなく作業が終われば、あなたのリクエスト道理に完了画面へと遷移してくれます。これを踏まえて先ほどの文面を読み替えていきましょう。こちらエックスサーバーです。501エラーが発生しましたので、ご報告いたします。先ほど「ファイルをアップしてから完了ページに遷移してほしい」というご依頼を頂いたのですが、どうやらそのご依頼は、対応する手段を持ち合わせていないようで、お引き受けできかねます。次のことにお心当たりはございませんか?・私たちサーバーができない行為を要求していませんか?(MOVE/COPY)などのご依頼はお引き受けできかねます。プログラミングを経験していない方は「アクセスしようとしたページは表示できませんでした。」という文言を見てわけがわからなくなってしまうかもしれません。私たちは「記事を更新したいだけなんだ!」と思うでしょうが、サーバー側が行うメソッド(仕事)は、「記事をアップロードする」「ページを遷移する」の大きく分けて2つあるのです。「ページは表示できませんでした」という文言に着目せず、この一連の流れに失敗したと解釈してください。(「ページは表示できませんでした」という文言はエックスサーバーさんが勝手にそう表現しているだけです。Implemented)とは、送られたリクエスト(指示)に対して、対応するメソッド(方法)がないことを伝える応答です。501エラーが起こる原因:WAF501エラーがなぜ起きる原因はさまざまありますが、WordPressに限った話で言うと、「WAF」が真っ先に思い浮かびます。FOUND)が返ってきます。サーバーの段階で501エラーではじかれているということは、そのリクエストをサーバーが禁止・規制していると考えられます。なると、ほぼ確実に「WAF」が原因になります。Firewall」の略称で、Webアプリケーション(自サイトと考えてしまっても構いません)の脆弱性を狙った攻撃を拒否するためのセキュリティツールです。分かりやすい画像があったので、お借りします。(引用:worldsky)このように、サーバーや私たちのWebサイトを守る仕組みはいろいろありますが、WAFはサーバーに最も近い位置で働くセキュリティツールです。クロスサイトスクリプト......Webサイトにスクリプトを挿入され、情報を抜き取られるバッファオーバーフロー......許容量以上のサイズのデータを送り、バグを誘発して悪意のある行動を滑り込ませるSQLインジェクション......システムの隙をついてSQL文を流し込み、データベースを不正に操作するこれらを防いでくれるのが、WAFです。基本的にはこれらを考慮したプログラムが組んであるのですが、脆弱性が見つかる可能性はどんなシステムでもあります。そんな時にWAFが最後の砦となって、攻撃を感知・ブロックしてくれます。(※WAFがなければ攻撃にさらされるということではありません。)サーバーの設定でWAFをONにしていると501エラーが発生エックスサーバーは、無料でWAFを設定することができます。WAFが使えるようになってから、セキュリティ対策のために一斉にWAFをONにしたと思います。そのため、エックスサーバー利用者の中で、501エラーが発生したという人が多く存在しています。エックスサーバーでは、以下の6項目を設定することができます。今回、エラーを引き起こすためにわざと記事に記入したのは、「cd」という文字列にリンクをさせたものです。href=”https://se.mtsukasa.com”>c/d</a>(cdにすると501エラーが起こるので、間に「/」を入れています。)を入力して投稿・下書き保存・更新しようとすると、501エラーが発生します。これは上の6つのうち、「コマンド対策」に当てはまります。いったアルゴリズムで検知しているのかわかりませんが、cdのコマンドといえばコマンドプロンプトなんかで使うカレントディレクトリを表示させるコマンドが有名ですよね。ファイル移動系に厳しいのかな......?とか想像しても私の知識量ではどうしようもありませんでした。みなさん「CD」という文字にリンクをさせていませんか......?もしそうなら、それが原因で501エラーが出ていると考えられます。501エラーを解決する対処法501エラーが出た場合、かなり焦ることでしょう。焦っていろんなことをして、結果、せっかく書いた記事を無駄にしてしまわないように、まずは記事のバックアップを取りましょう。テキストモードにして、全文をコピー、テキストエディタか何かにペーストして保存しましょう。(WordPressの編集画面は自動的にバックアップを取ってくれているので、501画面からブラウザバック→バックアップから復元→コピペでテキストエディタにバックアップ。)そして、安易に「WAFをOFFにする」なんて発想にならないでください。検索をしてHitする対処法はどれも「WAFをOFFにする」ですが、初手に「WAFをOFFにする」という選択をするのはナンセンスと言わざるを得ません。WAFを使えるのですから、使わせてもらった方がいいです。(WAFをOFFにするのは最終手段)ではどうするかというと、「原因個所を突き止める」です。WAFのON/OFFを操作するより早くできるので、利便性の観点からもこちらをオススメします。原因は十中八九リンクか画像501エラーを引き起こすのは、十中八九リンクか画像です。普通の文章が501エラーになるのはまずないと思ってください。(日本語でエラーはまずないので、テキスト編集モードでアルファベットがある個所に検討をつけてください。リンクや画像以外でも、アルファベットを使用している箇所があれば、そこを重点的に。)これで、もうほとんど目星がついたのではないでしょうか。あとは、どれが原因かを確認していくだけです。リンクや画像がある部分を削除して、「プレビュー」を押してください。プレビューが501エラーなら、その個所は原因ではありません。プレビューは何回でも使えるので、501エラーを確かめるのはプレビューを使いましょう。プレビューが501エラーではなくなった時、その時削除した要素の中に、原因が存在します。あとは、文字列を変えてみたり、URLを変えてみたりして、何が原因だったかをさらに詳しく調べてみてください。なんで501エラーになるのかわからなくても、原因がどの文字列だったかが必ずわかります。アルファベットがあれば、まずはそこを疑ってください。あとは、バックアップから元に戻して、原因を取り除いて終了です。しても無理な場合もある「WAFをOFFにする」をナンセンスと言いましたが、「WAFをOFFにする」ことでしか解決できない場合もあります。上でも述べましたが、「cd」「CD」にリンクを付けると501エラーになってしまいます。エラー回避のために、まさか「シーディー」と記載するわけにもいきません。「CD→コチラ」という風に変え、「コチラ」にリンクを付ければ問題ありませんが、どうしても「CD」にリンクを付けたいこともあるでしょう。その際、最終手段としてWAFをOFFにするしかありません。最終手段:WAFをOFFにするWAFのON/OFFには1時間くらいかかるので面倒ですが、OFFにして時間が経ってから記事を更新・保存・公開することで、501エラーを回避することができます。WAFを利用しなくても、攻撃にやられることはほとんどないでしょう。WAFを実装しているサーバーがどれくらいあって、どれだけの割合が利用しているのかわかりません。少なくない数のWEBサイト運営者が未導入でしょう。記事を更新してからWAFをONに戻してもいいですし、最終手段とは書きましたが、どんどん利用していい方法ではあります。WAFの意味を理解し、危険性を把握した上で行いましょう。501になるキーワードなどありましたら、シェアしてくれると嬉しいです。原因を突き止めて、それを避けていけるようになれれば一番良いですね。