以前こちらで、WordPressで作ったサイトが「このサイトは第三者によってハッキングされている可能性があります」と表示された時の対処法については解説しました。
今回はその続編というか、最近出てきたもう少し厄介なファイルの改ざん、とその解決法です。
具体的には、管理画面に入れない、もしくは、管理画面がバグってるっていうファイル改ざんです。
▼例1.管理画面に入れない、というか真っ白(Forbidden)
▼例2.入れたとしてもバグってる
結論からいうと「.htaccessが改ざんされてます」ってことです。
と、実際の作業に入る前に、「ハッキング」「ファイル改ざん」に関する、予備知識を少々。
【ファイル改ざん豆知識①】
(今回に限らず)一般的にファイルの改ざんされた場合って「index.php」と「.htaccess」この2つをチェックすればひとまず何とかなります。だから落ち着いて、まずはポイントを絞って対処しましょう。
※ただし、これはあくまで応急処置で、その他新しく不要ファイルを埋め込まれている等の場合もあるので、厳密にいうと、もちろんそれほど単純ではないのですが。
そうは言っても、「index.php」と「.htaccess」。この2大巨頭をまずは調べることにしてください。
【ファイル改ざん豆知識②】
それから、もう1つ。
改ざんされた文字列は、ほとんどの場合「ファイルの冒頭に記述されている」というのも1つの傾向なので覚えておいて損はないでしょう。(ある程度法則がわかってさえいれば、コードがあまり読めない人でも、「このあたりがおかしいのでは?」と、推測して絞り込む時に役に立ちます)
今回でいうと改ざんされた文字列はこんな感じです。だいたい「基本形の上」に記載。これがミソ。(詳細は後述)
※ここから先の作業は、事前にファイルのバックアップを取ってから作業してください。
1)FTPソフトで操作できるかどうかをチェック(つまり、FTPで編集できなくなっている可能性あり)
さて。そんなこんなで、最終的には「.htaccess」の改ざんされた文字列を削除すれば「403 Forbidden」は解決されるはずです。(あとindex.phpも念のため)
ところが。
どうやら最近、FTPソフト(例:昔でいう「FFFTP」。最近でいうと「FileZilla」など)で編集できないように、パーミションを444(=読み取り専用)とかに書き換えられている事例が散見されます。
▼FTPソフト⇒該当ファイル⇒右クリック「パーミション」で確認してみてください
この場合、FTPソフトでは編集できないので、ご利用サーバのコントロールパネルから直接編集する必要があります。(要は、さくらインターネットとか、お名前ドットコム等の大元の画面のこと)
※サーバをご自身で管理していない場合は、サーバ運用者・管理会社にお願いしましょう。
2.コントロールパネルから編集
(「1」のFTPソフトで編集出来る場合は、ここは飛ばしてください。)
ということでFTPソフトで編集できなくされてしまった場合。ご利用サーバの「コントロールパネル」、つまり最上部から編集します。
(ひとまずここでは、さくらインターネットで解説します。が、お名前ドットコムとかでもサーバのコントロールパネルはありますので、だいたい同じです。なんとなく流れとして把握してください。)
1)契約情報⇒契約中のサービス一覧⇒コントロールパネルを開く
↓↓↓
↓↓↓ログイン↓↓↓
2)ファイルマネージャー
3)ここが最上部
FTPソフトと同じような画面が出てきましたね。しかしFTPソフトと違うのは「ここが最上部」「最高権威の編集場所」ということ。
3.まずは不要ファイルを削除しよう
さて、「.htaccess」を修正する前に、雑魚を消しておきましょう。
といっても、ちょっと知識が必要になる「かも」しれませんが。
改ざんされた場合、wordpressに本来必要ない(存在しない)ファイルが埋め込まれている場合があります。
ここでいうと
wp-info.phpやabout.php。
▼こういうファイルは普通存在しないので、右クリック⇒削除、で消しておきましょう。
(不要なファイルが埋め込まれているかどうかわからない場合は、さくらインターネットにメール相談すると、ざっくり調べてくれる場合があります。お名前ドットコムは個々の問題の対応はあまり期待しない方がいいかもです。)
自分が遭遇したのは、この2つですね。
(※ただし、1か所というわけではなく、特にwp-info.phpは「wp-admin」「wp-content」「wp-includes」など、複数の箇所にも埋め込まれていたりしますので1つ消したからといって安心しないよう注意が必要)←これが厄介。
一応、ご参考までに。
4.本丸「.htaccess」を編集しよう
さて、ようやく本題です。
該当サイトの最上位にある「.htaccess」を右クリック⇒編集、と行きたいところですが。
▼今はまだ「読み取り専用」なので編集しても、保存できないと思います。
●パーミション(属性)を直しましょう
「.htaccess」を右クリック⇒プロパティ
属性を「444」⇒「644」(書込)に変更
これで、改めて「.htaccess」を右クリック⇒編集
▼怪しげなコード(上の部分)をバッサリカット
※人によって、画面と多少違うので、やや知識が必要です。ざっくり言うと
<IfModule~なんちゃら</IfModole>
を残せば大丈夫かな。
▼保存
これで、ダッシュボードに入れるようになったと思います。
※「相変わらずエラーのまま」という場合は、wp-admin等、あらぬところに不要な「.htaccess」が埋め込まれまくっています。そういうのを削除or修正すれば大丈夫だと思います。
5.一応、「index.php」も見ておこう
「4」と同じく重要なのがindex.php。
ここも非常に改ざんされることが多いです。
ここもある程度知識が必要っちゃ必要ですが、基本形がだいたい頭に入っていれば、「その上」に何やら記載があればそれが怪しいです。
例えばこういうことです。
なんじゃこりゃ!!!!
落ち着いて。基本形より上の部分は、バッサリカットしてください。
↓↓↓
はい、スッキリ。
補足1:不要な埋め込みファイルが存在している場合もあるので要注意
とりあえず、以上でだいたいのことは終わったと思います。(少なくとも応急処置としては。)
が、被害の大きさは人によってまちまちなので、もしかしたら上記以外に、不要なファイルが埋め込まれている場合もあります。そして、それは1つずつ削除していくしかありません。
そうなってくると、どれが必要で、どれが不要かは、ご自身で判断されるしかありません。ファイルやコードが読める人は問題ないと思います。ファイルやコードが読めない人も、一応下記に
①だいたいの法則
②不要ファイルのチェック方法
を紹介しておきます。これで、脱初心者~中級レベルの人であれば、落ち着いてやれば何とかなります。
①だいたいの法則:明らかに意味を成していない文字列
まず、最も分かりやすいのは「明らかに意味をなしていない」文字列のファイルです。これは疑っていいでしょう
②不要ファイルのチェック方法
過去にバックアップを取っていれば、それと見比べれば、「あれ?このファイル、過去に存在してない」っていうのが出てきます。そういうのを一律疑ってかかりましょう(不要なら削除)。
補足2:今後の対策
今後、こうならないために。
やるべきことは、こちらも言い出せばキリがないのですがとりあえず2つ。
①パスワードは強固なものに変更(wordpress、FTPパスワード両方)
大文字・小文字・数字を入れ混ぜて、推測されにくいパスワードに変更。これは最低限のことです。
例:ljcM8Yv#qAbyxyT
②ログイン画面がいまだにwp-admin、wp-loginで使える場合は、即座に変更
【超カンタン】WordPressのログインURLを変更してセキュリティ対策
※ちなみに、上記の応急処置がひと段落したら、(自信のない方は特に)頃合いを見て、別のサーバを用意して、サイト自体を新しく作りなおした方がいいと思います(もちろん、旧ファイルは使用しないように。どこに何があるかわからないので。)