Tag Archive: wordpress

WordPressで勝手にリダイレクトするScriptコードに感染。

WordPress リダイレクト

追記2018/09/27

前回記事を書いた後も色々調べてみると、取りきれていないScriptコードがあったりとわかって来ました。前回の記事を残しつつも、なるべくわかりやすく再編集します。

—————-

もう、最悪でした。勝手に海外のサイトに飛ばされる症状が出るので、同じサーバで管理している他のサイトも調べてみたら案の定やられてました。症状としては、障害が出ているサイトのリンクに行くと、他のサイトにリダイレクトされ、3つか4つのリダイレクトが連続した後に広告のあるサイトにたどり着きます。

不思議なことに、感染しているファイルが違ったり、症状が一定ではないのもあり、探すのに苦労しました。ダッシュボードから確認できる異常は下記の通りです。

・投稿ページの投稿の最後にScriptコードが挿入されている。
・固定ページの最後にScriptコードが挿入されている。
・メディアの説明などのどこかにScriptコードが挿入されている。

投稿、固定ページはこんな感じのコードが最後に挿入される。

これで、「cdn.examhome.net」と言うサイトにリダイレクトされることになってしまう。

メディアの「説明」部分は見つけにくいです。こんな感じ。↓

問題はこれだけではなかったので、Search Regexによる投稿ページなどの文字列の消去だけでは対応できません。

サーバ内の<head>〜</head>の最初と最後に下記のコードが挿入されます。

*対応とは関係ないですが、これはユニコードをデコードすると文字列になります。

まず、やるべきことは、データベースサーバ内のWordPressファイルに問題と解決を分けて考えることです。

データベース内の対応について

 

1、レンタルサーバのPHPのところからphpMyAdminにアクセスし、該当のデータベースを選択します。
2、wp_postsを選ぶとデータベースにどんな情報が入っているのかを確認できます。
3、下記の画像のように特定のリンクに飛ぶようなScriptの文字列が確認できます。

Wordpress 急にリダイレクト

5、これを全てこの画面から消すのは現実的ではないので、wp_postsだけをダウンロードして、Atomなどテキストエディタで全て検索して一気に消します。*新しいphpMyAdminの場合はSQL上で消去することができますが、バックアップの意味もありダウンロードファイルから修復します。

やり方は、wp_postsをダウンロードしたら、複製して感染ファイルと改善ファイルの2つに分けます。

Atomの場合は、wp_postsを下記のようにOpenで開いたら

Wordpress 急にリダイレクト

Findのメニューから、Find in Projectを選択します。

Wordpress 急にリダイレクト

すると、下記のように検索するフィールドと置換(Replace)するフィールドが画面右下に現れます。

Wordpress 急にリダイレクト

検索するフィールドに上記のように、投稿ページや固定ページ、メディアに挿入されてしまったScriptコードを消去できます。挿入されたコードをここにコピペしてFind Allし、発見されたかを確認してReplace Allすれば、全て入れ替えられます。

改善したファイルを再度上書きでアップロードすればデータベースは完了です。

*念のため、全てのファイルをダウンロードして検索をかけておくといいとも思います。このファイルだけでも、<script>のみ検索して他にコードが埋め込まれていないか、色々調べてみてください。

もし、wp_posts以外にも不審な書き込みが見つかったら、この記事に書き込みをお願いします。また、一点注意ですが、phpMyAdminのアップロードに容量制限がかかっている場合、重たいファイルだと「ダウンロードして直してアップロード」ができません。容量を確認してからこの作業を行なってください。

サーバ内のWordPressファイルについて

1、まず、下記のファイルか、拡張子の無い怪しいファイルはないかルートフォルダを探してください。もし、あればすぐにローカルにコピーしてサーバにあるものは消去してください。
*ローカルにコピーするのは、この中の文字列をあとで検索にかけて消去するためです。

中身はこんな感じで、重要なファイルのヘッダー(<head></head>で囲まれた最初と最後の2箇所)にユニコードの文字列を埋め込んで来ます。不具合のあるサイトの中でも、これがあるものとないものがあります。

Wordpress 急にリダイレクト*クリックで拡大します。

2、次に同じ階層の下記の2つのファイルを確認してください。

・wp-config.php
・wp-login.php

wp-config.phpの中身をみると、以下の部分は、’put your unique phrase here’が明らかにおかしいコードに書き換えられています。*これは正常なもの。

「wp-login.php」内には、中にscriptが挿入されて

から始まる数列がびっしり追加されていました。他にもいろんなフォルダ内のファイルにおかしな文字列が追加されていました。

もし、上記のような文字列がある場合は、他の階層のファイルにも書き込まれている場合が考えられるので、FTPソフトで一旦全てダウンロードして、データベースの修復と同じように対応します。

3、WordPressファイル内の修復

ルートフォルダに入っているファイルとフォルダを全てダウンロードして、一つのフォルダにまとめます。これを複製して感染バージョンと改善バージョンに分けます。

改善バージョンをこれまでと同じく、Atomで修復します。1ファイルではなく、フォルダを一気に選択したいので、Atomのメニューから下記を選択します。そのまま、改善バージョンのフォルダごと選択します。

そうすると、指定フォルダないのファイルをすべて検索できます。Find Allのフィールドに、<head></head>内にある不具合を起こしているコードをFind Allで検索して見つかれば、そのうちの一つの詳細を調べます。その中の<script>〜</script>までをコピーして、Find Allの中に改めてペーストしReplace Allで消去していきます。

Wordpress 急にリダイレクト

また、同じように文字列の一部をFind Allで検索して、検索に引っかかったものの詳細を表示して、<script>〜</script>の部分を消去していきます。

なぜ、このようにするかというと、

(118, 97, 114, 32, 115, 111, 109, 101, 115, 116, 114, 105, 110, 103, 32, 61, 32, 100, 111, 99, 117, 109, 101, 110, 116, 46, 99,

から始まる文字列にいくつかパターンがあり、一回のReplaceでは消去しきれないためという理由と、

eval(String...

から始まる文字列もあり、何回かにわけて確実に不審なコードを消すためです。

4、改善バージョンの入れ替え

このように、改善バージョンが出来上がったら、その中でローカル上で更新できるフォルダを最新のものに入れ替えます。例として下記のようなものです。

・プラグイン
・テーマ

これらは元のフォルダを一度消去してから新しい最新のフォルダを入れ替えます。

これで、改善バージョンのサイトが一つのフォルダにまとまりました。FTPソフトでサーバにアップロードして、一旦修復は完了です。

今後の対応として

この次に、今後の対応として、

・サーバへのアクセスを国内のみに限定する(レンタルサーバのコントロールパネルから設定)
・Wordfenceプラグインの導入(エラー原因を特定して知らせてくれる)
・miniOrange 2-Factorプラグインの導入(2段階認証の導入)

まずは、アクセスを国内に限定すれば大抵の攻撃は収まるでしょう。ただ、国外からのアクセスが必要な場合も多々あるので、その場合は、WP-Banのような特定の国からのアクセスを防げるプラグインの導入を考えるか、他の特定のIPアドレスからのアクセスを防ぐ手段を講じる必要があります。

Wordfenceは、データベースとサーバ内の対策をする前に導入すると、プラグインごと感染するので綺麗にしてから入れましょう。

https://ja.wordpress.org/plugins/wordfence/出典:https://ja.wordpress.org/plugins/wordfence/

綺麗になるまで、Scanを繰り返し怪しいファイルを見つけましょう。無料機能で検知できます。

miniOrange 2-Factorは、スマホのアプリと連携して、いつものパスワードの他に、ログインパスワードを生成できるようになるため、ブラウザを介したログインをより強固にできます。

————————————–

調べてみると、まだほとんど情報がなく、ホスティングサービスのサポートに連絡しても、そもそも「外部からの攻撃への対応は全部消して、データベースも綺麗にしてから再構築してください。」とのこと。

最終手段を最初に言うのね。。。

 

LINEで送る
[`evernote` not found]
LinkedIn にシェア

WordPressの方、必見!!簡単Googleアナリティクスを導入する方法。

WordPressでGoogleAnalytics を使う!!

わかっちゃいるけど、設定がめんどくさいですよね。Googleアナリティクス。
Googleアナリティクス

ちょっと前までは、テキストエディタで直接埋め込んでいました。

 

でも、WordPressを使っている方は、プラグインで埋め込めちゃうんです!!

しかも、WordPress上でも見ることができますし、いつものGoogle Analyticsの画面で見ることもできます。

以下に、順番に設定方法を記載します。

 

1、Google Analyticsでの設定

WordPressプラグイン GoogleAnalytics で分析1

まずは、アナリティクス設定をクリック。

WordPressプラグイン GoogleAnalytics で分析2

次にアカウント部分をクリック。

WordPressプラグイン GoogleAnalytics で分析3

そうすると、新しい検索が開くので、「新しいアカウントを作成」をクリック。

 

WordPressプラグイン GoogleAnalytics で分析4

アナリティクスを使いたいサイトのデータをどんどん入れていく。

WordPressプラグイン GoogleAnalytics で分析5トラッキング画面などがでるがこぴらなくてよし

進めていくと、トラッキングIDなどがでるけど今回は使わない。だって、WordPressだから(笑)

 

2、WordPressでの設定

WordPressプラグイン GoogleAnalytics で分析6ここからwp

まず、Google Analytics Counter Trackerというプラグインをインストールする。

 

WordPressプラグイン GoogleAnalytics で分析7

プラグインを有効かする。

 

WordPressプラグイン GoogleAnalytics で分析8

有効化すると、「設定」Analytics Counterが現れる。

WordPressプラグイン GoogleAnalytics で分析9

Connect Google Analytics servicesをクリック。

Google Analyticsのアカウントと連携する許可を求められるので進めていく。

 

WordPressプラグイン GoogleAnalytics で分析10

設定が終わると、「1、Google Analyticsでの設定」で設定したサイトが表示される。

 

WordPressプラグイン GoogleAnalytics で分析11

もし、loading…になったら、画面を更新してリトライ。

 

13

無事表示されたら、「Save」をクリック。

 

3、Google Analyticsへ戻る。

14アナリティクスにもどる

「ホーム」をクリック。

 

 

15時間をおいてみてみる

設定しているサイトが表示されるので、分析したいサイトをクリックして、「すべでのウェブサイトのデータ」をクリックすると、該当サイトのレポート画面で分析が可能になります。

 

分析画面では、

New Visitor Returning Visitor (再来者が多ければファン化が進んでいるかもなあ、とか)

ページビュー を増やす。

平均セッション数 を増やす。

直帰率 を減らす。

など、簡単なところから見ていき、課題を抽出して、施策を打って、施策が有効かどうかをまた分析するという繰り返しができます。まさに、PDCAですね。

 

特に、ブログやサイト運営を始めたばかりでは、施策を考えるよりも定期的なサイト更新がページビューを増やすので、そのためのモチベーションを高めるためにこれらの数値を使うのが何より有効です。

設定ができたら、分析を学びましょう!

LINEで送る
[`evernote` not found]
LinkedIn にシェア

WordPress アドレス (URL)の中のURLを変えるなよ!!・・・と言ったのに。

WordPress url 変えて ログインできない

やっちまったな。
WordPressには、ダッシュボードの中にいじってはいけない場所があります。

それは、設定→一般設定の中にある、

WordPress アドレス (URL)

WordPress url 変えて ログインできない

ここを変えると、編集時のログイン画面が表示されなくなり、ダッシュボードを表示することもできなくなるだけでなく、来訪者がアクセスしたときの表示もおかしくなります。

今回は、その時の対処法をメモ。

この対処法には、次の2通りあって、それを理解するために簡単な解説をします。

1、データベース(phpMyAdmin)の編集
2、サーバ内のwp-config.phpの編集


さて、それでは1つ目の

1、データベース(phpMyAdmin)の編集

です。

ダッシュボードの一般設定でWordPress アドレス (URL)を変更しても、データベース内の内容はそのまま残っています。なのでデータベースを編集することで解決する方法がその1です。

レンタルサーバの場合は、コントロールパネルからデータベース設定を開きます。
データベースの管理ツールなどの表示で、phpMyAdminのログイン画面へのリンクを探します。

phpMyAdminにログインしたら、以下の画面が表示されると思います。

WordPress アドレス (URL) ログインできない

 

左のカラムに作成したデータベースがいくつか出てくると思います。(1つしかサイトを使っていなければ、通常1つ)ここの該当するデータベースを選択すると、次の画面が表示されます。

 

WordPress アドレス (URL) ログインできない

書き換える場所は、該当のデータベース内の wp_options です。もし、接頭辞(wp_)を変更していれば、最後に options が付いているテーブルを書き換えることになります。で、操作のところの赤丸のアイコンをクリック。すると、次のページが表示されます。

 

dbef3f3fbeb62bba3481176a1c050d10

やっと、書き換えたいデータがでてきました。 wp_options の中の、 siteurl の編集ボタン(えんぴつ)をクリックすると次の画面になります。

 

WordPress アドレス (URL) ログインできないこの画面が表示されると、赤四角のところに、WordPressの管理画面で入力してしまった、誤ったURLが表示されます。これを、書き換えて作業完了です。

さて、ここまでいくと、「あれ?URLあってるじゃん」となりませんか?
URLがホームページのトップページ(ルートフォルダ)になっている場合は、WordPressの置いてあるフォルダのURLに書き換えてみてください。FTPソフトで正しい場所を特定すればいいのです。

 

次に、2つ目の方法の

2、サーバ内のwp-config.phpの編集

(wp-config.phpに追記する方法)
です。

WordPressフォルダ内にある、wp-config.php に

を、記述することです。

こちらの方法は、データベースに優先されて読み込みされるので、データベースの方が間違ったままでも wp-config.phpに記述されたものが表示されるようになります。

この方法だと、ダッシュボードで、設定→一般設定を表示すると、WordPress アドレス (URL)の欄はグレーアウトされダッシュボードから操作できないようになります。
(不慣れな編集者を含む複数人と一緒に管理する場合は、この方が良いかもしれませんが、通常は根本原因を修正する、最初の1の方法がおすすめです。)

こちらは、FTPソフトや、レンタルサーバのコントロールパネル内のファイルマネージャーなどを使って、

WordPressフォルダの最初の層にある、 wp-config.php ファイルに

 

を追記するだけです。場所は、どこでもOKです。まあ、最後の行にでもわかりやすく書いておきましょう。
先ほど書いたように、作業が正しく完了するとデータベース内の間違ったURLが読み込まれた後に、 wp-config.php 内に追記した文字列が読み込まれ優先されます。そのため、管理画面にログインできるようになります。

どちらの方法でも、やり直しが聞くので元に戻したい場合は、1つめのデータベース書き換えの方法。WordPress アドレス (URL)の編集をしたくない場合は、2つめのphpに追記する方法を選択すれば構わないと思います。

参考:
いちばんやさしいWordPressの教本
いちばんやさしいWordPressの教本第3版 人気講師が教える本格Webサイトの作り方 (「いちばんやさしい教本」) 単行本
本当によくわかるWordPressの教科書 はじめての人も、挫折した人も、本格サイトが必ず作れる
本当によくわかるWordPressの教科書 はじめての人も、挫折した人も、本格サイトが必ず作れる

参考:https://backyard.chocolateboard.net/201112/wordpress-url-change

 

LINEで送る
[`evernote` not found]
LinkedIn にシェア