Skip to content

Categories:

CSV Importerで配列形式のカスタムフィールドをよみこむ

WPで一番楽しい瞬間って

『やっべぇ…これ詰んだくさい…!!』となった時、必死に検索して解決策をアップしてくださっている記事に出会う瞬間ではないでしょうか…

 

てなわけで今回も助けられたのでご紹介。

 

WPで大量に記事を投稿しないといけない場合、CSV Importerというプラグインを使う事でCSVを使って記事を取り込むこが出来ます。
カスタムポスト、タクソノミー、カスタムフィールドにも対応していて大規模なサイトを作らなければいけない場合は非常に助かります。

ただcsv形式が、utf-8限定なのでExcel等で開いてしまうと文字コードの変換が非常に面倒くさいです。
shift-jisで読み込めるようにするTipsは下記記事を参考にしました。

http://erabikata.info/sjis-csv-wordpress.html

 

さて。今回もこのプラグインを使いサイト構築をしようと準備をしていた所
『あれ…これ配列形式のカスタムフィールドはどうやって取り込むんだ…??』
とチェックボックスの部分で詰まってしまいました。

DBの方には、シリアライズされた形で格納されていて、このシリアライズされた文字列をExcelのセルに打ち込めばしっかりとチェックボックスに値が入るのですが、今回は記事件数も多くしかも、入力するのは僕ではありません。さすがにこの形で入力作業を投げるのはキツいものがあります…

 

あーでもない、こーでもないとやっている内に英語版WPフォーラムにて、どうやら同じ事で詰まっている風のトピックスを発見。

http://wordpress.org/support/topic/plugin-csv-importer-setting-serialized-meta-to-not-be-reserialized-on-import

しかもGitに対応版のソースがアップされている!!!

 

この修正版ソースに、前述のshift-jisの処理を追加すれば…イケた!!
社内で一人『ぅおしっ!!』と奇声を上げていましたwいやーほんと助かりました…

 

チエックボックス形式のカスタムフィールドは多様するので、CSVImporterの方で正式に対応されればなぁっと。

Posted in web.


WordPressのバックアップ・復旧の概要

2013日8月30日現在で、ロリポの問題は何かまだまだ混乱してる感がありますね。

クラックは今現在も続いているのでしょうか??

 

ロリポ側も対応に負われていて、何か具体的にどー動いていいかも
判断しかねる感じですね。

フォーラムの方にも立っていたのでコチラを細かくチェックした方が良いかもですね。

http://ja.forums.wordpress.org/topic/24573?replies=1

 

 

んー普段からのバックアップが非常に重要ってのが身にしみますね。
クラックされると、一体どこがどーなったのか知識が乏しければ正直分からないと思います。
データベースの中身を一個一個チェックするなんて無理だし。
クラックされたファイルから完全に復旧というのはケッコームズいのではと…

 

 

恐らく、今回被害にあった人たちの中にはライトなユーザーも多くいたと思いますので
バックアップの取得、ましてはバックアップからの復旧等も敷居が高いと思います。

なので、WPをバリバリ触れる人からしたら今更何言ってんだ感が強いですが

1.バックアップはどうすれば良いのか??

2.復旧ってどうすれば良いのか??

っていう2つの概念を書こうかと。

 

ネットで転がってる「こうするのが正解!」的な内容では無く
何故それが必要かという部分です。

 

 

1.バックアップはどうすれば良いのか??


バックアップを取るといっても、どのファイルバックアップすれば良いのか??
WPのフォルダを開くとこーなっている感じだと思います。

 

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

罫線図こんな表現であってるか…?!(汗
各ディレクトリとファイルが一体何なのかっていうと

  • wp-admin…管理画面周り
  • wp-content…テーマ、プラグイン、画像とか
  • wp-includes…wordpressの処理をするファイルがある所
  • htaccess…パーマリンクの設定やら
  • wp-config.php…wordpressの基本設定ファイル(DBの接続先とか

って感じで。何かwp-adminとwp-includesの説明が間違っている気がする…!!

 

んで、通常は、下記赤のフォルダは基本的にインストール後から何も変わらないはずです。
環境にもよりますが。プラグインでその辺に追加されたりとか
includesを触るカスタマイズ等もあります(推奨されませんが)

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

んでバックアップに重要なのは下記の青の部分

 

WP┬wp-admin[フォルダ]
      ┝wp-content[フォルダ]
      ┝wp-includes[フォルダ]
      ┝ htaccess(無い人もいる)
      ┝ wp-config.php
      └ その他なんやかんや

 

特にwp-content。

htaccessやwp-configは再インストール時になくても最悪なんとかなりますが
wp-content内には作成したテーマファイル、アップしたファイル、プラグインファイル
など、ユーザーが独自に変更する部分が詰まっています。

 

もしWPを改竄され、復旧するには基本的に新規インストールになります。
WPサイトから該当するバージョンをダウンロードし、もう一度アップロードする
という事になりますが、wp-admin・wp-includesに関しては、インストール後特に変化が起きない
なので、そのディレクトリに関しては特に必要無いのかなと思います。

 

もちろん全ディレクトリ取れていれば問題無いですが
そのへんのディレクトリはファイル数もわりとあるので、時間もかかるかなと。
ディレクトリで最重要なのははwp-contentフォルダです。

 

そしてもう一つ。データベースのSQLファイル
WPの全てのデータです。記事だったり固定ページだったり。プラグインの設定から
WPの設定からなにまで。

 

WordPressはwp-contentとSQLファイルがあれば完全に復旧する事が出来ます。
バックアップに必要なファイルは以上の2つです。

 

バックアップを取得するのにオススメなのは

 

「BackWPup」というプラグインがオススメです。

・WPのディレクトリ事のバックアップ(除外も可)
・月1等の定期的な設定
・ドロップボックスへのアップロード
・バックアップ完了後のメール送信

 

等が行えます。(ドロップボックスは試した事が無いのですが…)

 

アップロードディレクトリ(画像等)にファイルが大量にあるとエラーを出したり
最悪、貧弱なサーバーだと落ちた経験があります…

これを導入し、定期的にしっかりと取得すれば
今回のような事が起こってもすぐに対応することが出来ます。

 

2.復旧ってどうすれば良いのか??


まず前提として、上記バックアップをしっかりと取っている事が前提です。

なぜかと言うと、改竄されたファイルは、どこがどう改竄されたかが
非常に分かりづらい&大量に改竄されるからです。

 

以下、経験した改竄事例

 

  1. <body>等の特定のタグを狙い、ディレクトリ内の全ファイルに置換を掛け、不正なスクリプト等を挿入する。
  2. 不正なphpを設置し、特定のファイルに関してエディタ等で開いた場合は特に問題が無いのだけれど、ブラウザからアクセスした場合そのファイルに対して、関節的に不正なスクリプトを挿入する
  3. エンコードされたスクリプトが挿入され、特定のパラメータをURLに渡してアクセスすると、バックドアが現れる。
  4. データベースが書き換えられ、不正なスクリプトをWPが出力するようになる。

 

等など…

もう本当に頭が痛くなります。2の間接的な書き換え等は、FTPの更新時間や、アクセスログを見ても特定が出来ないので
特定に時間が掛かりました。

 

 

とにかく、どこそこ書き換わるので、一度改竄されたファイルから復旧するのは本当に困難な訳です。
という訳で、しっかりとバックアップを取ろうという事になります(汗

 

 

 

で、実際の復旧方法はどうするか。

 

 

まず、バックアップファイルに必要な物が入っているか確認します。

 

1.テーマファイル
2.プラグインファイル(これは最悪、入れたのを覚えていれば再インストールでも可
3.アップロードファイル(画像とか
4.SQLファイル

 

SQLファイルはしっかりとインポート出来るか確認
これが一番重要なのですが、バックアッププラグインの設定等をミスってたりすると上手く読み込めない事があります。
知識があれば、手動な書き換えで対応する事も可能ですが非常に難易度が高いです。

 

 

サーバーにもよりますが、複数データベースが持てる所であれば
まず、テストで適当なDBを作り、インポートが行えるか確認するのをオススメします。

 

出来れば、別環境にテストで移行してみる。
これも、DBが複数持てるのならばですが、サーバー上に適当なフォルダを切りそちらでテストをしてみるのをオススメします。

 

例えば

http://xxx/wp

という所にインストールしてあったならば

http://xxx/wp2

というフォルダを新しく作ります。そこに新規でWPのファイルをインストールします。
バックアップのSQLファイルをコピーし

秀丸等のエディタで開き

 

http://xxx/wp → http://xxx/wp2

 

という書き換えを行います。
もし、トップのディレクトリを変えている場合はここだけ、パスが変わると思うのでそこは注意します。

 

データベースにphpmyadminにアクセスし、新規データベースを作成し書き換えたSQLをインポートします。

http://xxx/wp2/wp-admin

にアクセスした場合、新規インストールの際は、wp-configの作成画面が出ると思います。
そこに、先ほど作成したコピーデータベースを指定すれば、ブログの複製が出来ると思います。
初期だとhtaccessも作られないので、管理画面にアクセスし、パーマリンクの更新も必要かと思います。

もしサーバーで複数持てない場合、XAMPP等で環境を整えてから、ローカル上で確認するのも良いと思います。
とにかく、ぶっつけ本番はオススメしません!

 

本番環境にインストールする。
確認が出来たならば、本番環境を復旧します。

 

まず、どのファイルが書き換えられたか分からないので基本的に
ファイルは全て削除します。削除前に、WPのバージョンを確認します。

 

wp-includes内のversion.phpにバージョンが書いてあります。
そのバージョンを公式サイトからダンロードします。

データベースも一度削除し、まっさらな状態にします。DBパスが割られている可能性もあるので
新規データベースを立ち上げ、パスワードも変更します。

 

ダウンロード後は新規インストールと変わりません。新規インストール後、SQLを書き換え、以前の状態に戻すので、適当でも良いかと思います。

新規インストールが済んだら、バックアップファイルから

wp-content内をアップロードします。

テーマ、プラグイン、アップしたファイル等をアップロードします。

 

 

SQLを書き換える。

phpmyadminにログインし、新規インストールしたDBにバックアップSQLをインポートします。
先にインポートしてから、wp-config.phpを作っても良いですが念のため…

先にまっさらな状態のWPのデータベースのテーブルは全て削除します。
削除後、SQLをインポートすればおk-です。

 

管理画面にログインし、パーマリンクの設定を更新します。

 

 

以上で、復旧作業は完了です。

 

phpMyadmin側でインポートファイルサイズに制限がある場合等はサーバーの設定から変更しなければいけないので
注意が必要です。phpmyadminが無い所はどうすれば良いだろか…

 

何かダラダラと長文の割にはあんまためにならない記事になっちゃったな…(汗
一度改竄を受けると、猫のようにWPのセキュリティに関して構えるようになります。

 

といっても、クラッカーは様々な手法で行うため、どうしても後手後手になりがちではありますが…

Posted in web.


ロリポでWPの大規模改竄

 
ロリポで大規模な改竄が起きているようです。
社内でも何個かロリポで構築したWPサイトがあったので(自分が担当したサイトではないが
確認してみたら、見事に一個改竄されていました!
 
とりあえずパッとみた感じの被害は
文字コードがUTF-7と書き換えられて文字化けしていたり、タイトルが管理画面から書き換えられていました。
 
それ以外の被害がなんだかよく分からないので、どうなんだろう…
とりあえず確実なのはバックアップからMySQLごと再インストールでしょうね。
 
 
どうやら、犯人のFacebook上で、ハッキングしたサイトの一覧を
公開とかしているようで、それに対して
 
「super brilliant work」
 
などとコメントが付いている始末…
brilliantじゃねーーー!
 
 
ロリポ側も色々対応しているらしく
 
wp-config.phpのパーミッションを強制的に400に
ウイルスチェックに引っかかったファイルは000に変更する等の
対応をする(している?)ようで。
 
 
んーーー何か現在進行形でハッキングを行っているようなので
対応が微妙に難しいです。今復旧をしてしまって良いのか??
 
 
とりあえず会社的には
 
ロリポの動きを待つ、それまでWPを落とす
その後普及
 
ってのがいいのかなと。
 
 
 
作業者はとりあえずバックアップ!
今後の動きが気になりますね。

Posted in web.


さくらインターネット マルチドメイン時の共用SSLでContact Form7を使う

さくらインターネットの共用SSLでContact Form7を対応してみたまとめ。

とりあえず、さくら+共用+Contact Form7という組み合わせのTipsは一杯あったんですが

何故か上手く行かない。

やり方としては、Wordpress HTTPSを使う方法なんだけど
どうしても共用SSLのURLでWPにアクセスすると、通常のhttpにリダイレクトされてしまう。

http://ja.forums.wordpress.org/topic/278

何かこの辺の情報でCanonical URLというのが働いて
リダイレクトされているというような記述があるのですが

でもこれ5年前の記事だしなぁ…

 

んで色々やってみて、なんとか動いてる?ので
忘れない内にメモ。

1.Wordpress HTTPS 3.2をインストールする

3.2以外では今回の環境で上手く行きませんでした。

 

2.Wordpress HTTPS 設定画面の

SSL HOSTに

 

secure523b.sakura.ne.jp/ドメイン名

 

を入力(この時https://は外す)

 

3.一応ドメインマッピングを設定する

なぜ一応かと言うと、普通に独自SSLでやる場合は必ず設定する項目なのですが
この書き換えが上手く行ってない!というか、WP内に存在するファイルだけ書き換えが上手く行かない。
faviconとかは書き換わるのに…
前述のCanonical URLで強制的にhttpに書き換わっているのだろうか…

 

4.Disable Canonical URL Redirectionプラグインをインストール

Canonical URL機能をオフにするプラグインだそうで。
これってオフっていい機能なのかなぁ…SEO的に何か関係があるみたいな記述があったけど

 

5.共用SSL用のページを作成。

編集画面の「Secure post」にチェックを入れる

 

6.作ったページ専用のテンプレートを作成

header、footer、sidebarを別途コピーし、適当にリネームしてページ専用のテンプレから読み込む

 

7.表示されるソースの書き換え

http://xxxx/wp/wp-content/

//secure523b.sakura.ne.jp/ドメイン名/wp/wp-content/

に書き換える。https://にしてしまうと何か分からないが実際に表示させた場合に
何故かhttpに書き換わってしまう!一体何なんだ!!

8.contact form7が吐き出すソースを書き換える

ヘッダーとフッターに自動で吐き出されるjsリンク等を手動で共用SSLのURLで書く(https:抜きで)
ローディングのぐるぐるGifもあるので注意
wp-configの方で、それ自体を止める方法もあるようですが、別の所(非SSLのモバイルフォームとか)で使うので
このページだけwp-head()、wp-footer()を削除。これしちゃうと他のプラグインのjs等も出ないので注意
※今回このページがたまたま、この2つの記述が無くても問題無かったため

 

9.contact form7のsetting.phpを開き

return (string) $wpcf7_request_uri;

return (string) 'https://secure523b.sakura.ne.jp/ドメイン名/'.$wpcf7_request_uri;
に書き換え。ここだけhttpsが付いているのは、非SSLの時にhttpsを抜いたら動かなかったため。

 

以上。
何なんだ!(汗

んーー一体何が原因で、httpsがリダイレクトされるのかがわかりません。
どこか別のサイトでは共用下でもちゃんと書き換えが上手くいってるっぽいのになぁ…
マルチドメインなのが問題なのでしょうか。
そもそも共用SSL自体がさくらが非推奨みたいの書いてあったんだけどな。
その辺は客にあんまセキュリティ的に意味ないっすよーとは伝えたのだけど

 

 

とりあえず、これはPC版なのでWPtouch下でもこれで上手く行くか

検証せねばぁ…

Posted in web.


AeroCOOL XPREDATOR White エディション

やってしまいました。価格COMで見て一目惚れして、ドスパラにて購入してしまいました。
Z9U3で組んでから2ヶ月ほどでしたが、この強烈ツートンにはかなわねぇ。何の機動戦士だこいつは!

Z9って何だか見た目が飽きるというか…
まぁー人間の欲は限りなしですよね。
「自分の部屋にフルタワーケースをドドンと置きてぇ!!」
というのが一番の理由です。ただ、まさかこんなデカイとは思わなんだ。

 

当初、BTOのミニタワーからZ9に変わった時も「でけぇ!!」と思いましたが
フルタワーはさすがに違います。と、言うかデカすぎて部屋に違和感ありまくりです。
でもいいんだ…でっかいは正義だ。

とりあえず昨夜11時から移行を初めて、終わったのが3時でした。とにかくデカいため、配線が大変で!
あと、重量がマジに重いので、腰を痛めてしまいました…
ただ組み上がった時の感動といったらそりゃもう。

内部は本当に広々です。ケーブルホールもたくさんあるので、何だかスッキリ出来ました。
ただ、Z9には多数あった、タイラップを止めるホールが3つしか付いていません!こんだけ余裕あるのに何故!!
お陰で裏配線はカオスの極みです。

標準でトップとフロントに200mmの大型ファンがついています。フロントのファンコンで1系統3個までファンを制御できるようです。
フロントは白色LEDですが、フロントは防塵のスポンジが入っているので、夜でもほんのり光ってるくらいですかね?トップはLEDがついてないのが
やや残念なところ。フロントの「XPREDATOR」の文字は綺麗に光ります。また、横の水色部分もHDDランプのようで、アクセス時は白色に点滅します。
パネルは木目調なのですが、完全に安っぽいシールです。ちょっとした衝撃で穴飽きそうです。つか開封時に若干浮いてるし。
一応サイズの風サーバーが付いてますが、温度表示のみでファンコンは繋がってません。というかつなげるファンがないです。

サイドパネルには4つファンを付けれますが、何か足元に風来るし、見た目も気に入らないので使っていません。
そうなると、ファンは大して付けれません。こんだけデカいのだから、シャドウベイとかにあっても良かったのに。
(Ver違いにはついてるようです)

天板はスライド式で「フェイスオープン!!」というノリで斜めに開閉します。
トップファンを最大にするとそこから結構な風量を感じます。何かここにLED仕込むとかっこいいかも。

全体的なクオリティは値段なりという感じでしょうか。
こまかーい部分がちょっと甘い気がします。まぁZ9とドッコイって感じですかね。

とにもかくにも、巨大。
大したスペックではないですが、見た目は完全にハイスペっぽい感じがします!w

 

 

Posted in 雑記.