WordPress 4.0 マルチサイトのアップグレードでSSLエラー

最近SSLを設定したサイトで、WordPressのマルチサイト機能を利用したサイトの運用を始めました。

今回SSLサイト上では初めてのアップグレード作業になるので、作業するか躊躇しましたが思い切って実行したところ、「ネットワークの更新」でSSLのチェックでエラーが出てしまいました。

ネットワークの更新ではデータベースが更新されるようですが、詳細な内容は確認していないのでよく知りません。が、取りあえずはアップグレードを正常に終了したいと思いました。

Google先生に問い合わせたところ、同じエラーで既に回避されたScottさんの記事が見つかりました。ありがとう、Scottさん、そしてGoogle。

SSL error when upgrading a WordPress Multisite Network

ネットワークの更新で、マルチサイトではSSLのチェックを実行しないようにするフィルターを設定したファイル「netword-upgrade-ignore-ssl.php」を「wp-content/mu-plugins」ディレクトリに置けばOKです。

ファイルの中身は2行です。

<?php
add_filter('https_ssl_verify', '__return_false');
add_filter('https_local_ssl_verify', '__return_false');

これで自分はアップグレードを終了することができました。

 

マルチサイトでupdate_welcome_user_emailフックが有効にならない件

WordPressでユーザー管理をする際の招待メールの送信、アクティベーションメールの送信などしたい場合、マルチサイトでサイトを構成するとそれらの機能を容易に利用できるようになります。

そうなるとユーザー管理も含めて送信内容を変更して、より業務に近い処理や文面を送信したくなる、という欲が出てきました。

そこでプラグインに機能を組み込みながら実装してみると、招待メールはフックを利用して容易にできました。が、アクティベーションメールを受け取ってユーザー登録と同時にメタデータを保存したり、登録完了メール文を差し替えるためのフック「update_welcome_user_email」に制御が一向に渡ってきません。

最初「admin_init」でフックを登録してましたが、wp-activate.php を見ると、どうも「admin.php」はロードしていないため「init」に変更してみました。ですがこれもダメで、プラグインのコンストラクタに変更しました。しかし、これもダメ。

アクティベーション処理では、どうもプラグインがロードされていないのではないかと疑ってみました。検索してみると、ありました。

wp-activate.php, without explanation, does not load site plugins

どうやら「WP_INSTALLING」定義を取り去るとプラグインがロードできるようになるようです。

ただし、マルチサイトにおいて何のためなのかハッキリしないため、どのような副作用があるか分かりません。

取りあえずこの状態で暫く動かしてみることにしようか思います。

後日譚:アクティベートの際プラグインをロードするように変更

WordPressのプログラムに直接手を加えるとアップデートをする度に書き換えする羽目になるので、避ける方法はないか試してみました。

テーマが幸いロードされるので、functions.phpでプラグインを直接ロードしてしまえば期待通りになるかも知れません。

そこで

if (defined('WP_INSTALLING')) {
    require ABSPATH . 'wp-content/plugins/{directory_name}/{file_name}';
}

とfunctions.phpに登録して試してみたところ、動作しました。WordPressは本当に柔軟性のあるシステムだと思います。

(140828)

ロリポップに対して残念な気持ち

良かれと思った親切心で行動した結果が、想像していた状況と違う進み方をすると結構がっかりした気分になってしまうようです。「何か期待しているからだ。」と突き放されてしまうとそれで終わりですが、精神衛生上気持ちの整理をしておこうかと思い、ブログに書き留めておくことにしました。

折しもベネッセ社の顧客情報漏洩問題で大きな騒ぎとなっておりますが、既に眠らされたであろうベネッセ社の酷い対応の話もまた蘇ってきました。

【悲報】ベネッセのサイトに脆弱性を指摘したらプロバイダから警告来てネットを停止された…

これは「XSSの脆弱性をベネッセに報告したらプロバイダに接続を止められた。」というもので、ベネッセとプロバイダの関係がよく分かりませんが、少なくとも善意が徒になったようでした。

さて今回自分のしたお節介は、「レンタルサーバーから不正と思われるアクセスがあったのでその報告」をしたことです。

WordPressのサイトには毎日のように不正アクセスを狙った攻撃が行われておりまして、自分のサイトも同様ですので、独自のプログラムでアクセスログを残すようにしています。

アクセスの多くは海外のサーバーからが多いのですが、たまに国内のサーバーからもあります。そして今回、昨年大規模クラッキングがあったロリポップサーバーのIPアドレスだったので、一応報告しておこうという気持ちが起こりました。

結果、あのときのロリポップを運営する会社を束ねるGMOインターネット社会長の対応も思い出してしまいました。以下は、あのときの当方の記事です。

ロリポップ大規模クラッキング事件を考える

ロリポップへの報告ですが、知り合いがいるわけでもありませんので「お問合せフォーム」を利用して連絡をしました。返信メールの内容は別におかしいモノではなく、詳細についてアクセス時間を秒まで含めて知らせて欲しい、ということでした。

数日複数回のアクセスがありましたのでリストをキャプチャ画像にして返信したところ、「配信専用のためお問合せフォームから連絡しろ」と、メールで怒られてしまいました。

詳細を知らせて欲しい、といいながら「どこに送ってくれ」の情報もないし、担当者は名字しか名乗らないし、「やる気はないのだろう」と直ぐに察しました。

ブックマークもしていないレンタル会社のお問合せフォームに入力するのは面倒ですが、乗りかけた船でしたのでもう一度、「キャプチャ画像を送るから送り先を知らせて欲しい」旨連絡しました。

すると、メール文の中に含めてあった「不正アクセスされたURL」で調べるとのこと、また「結果について知らせて欲しい」件については、「社内利用規約に基づき詳細な対応内容について連絡できない。」という回答でした。

ここが一番重要で、報告は「何が起きているのか」の情報を共有させて欲しいから、行うわけです。相手には対応の必要がある情報として有益だと思いますし、また自分に対しては関心のあるセキュリティに関してフィードバックになります。

この件で、GMOインターネットや関連企業がどんな会社か、担当者の仕事に対するモチベーションは、などが何となく透けて見えてしまった気分でした。

今後は報告するのも相手を見てからにしたいと思います。この件はこれで終わりです。

クラッキングされて、悪い結果で自社の名前が晒されないように注意したいモノです。

 

Mac 受信したHTMLメールのソーステキストを見るには

Windows PC から Mac mini へ移行して半年が経過、アプリの操作など使用頻度の低い操作は覚えきれなくなってきたので備忘録を追加する事にしました。

さて、WindowsではHTMLメールを受信してもテキスト表示のみにしていましたが、Macに移ってブラウジング表示で見るようになりました。テキスト表示のときは内容にまるで興味がわかないHTMLメールでしたが、ブラウジングで見やすくなると画像を含むレイアウト表示で、テキストよりも直感的に興味を引くようになりました。

で、今後もHTMLが広く使われる事になるかもしれないと思い、HTMLメールの作りに興味が湧いてきたのでメールのソースを見てみようとしたのですが、よく分かりませんでした。

調べた結果、いい方法か分かりませんが、以下のような手順で見る事ができたので、その手順を残しておきます。なお、Mac OS X は Mavericks にアップデートする前の 10.8.5 です。

  1. ターゲットのメールを表示した状態で「表示メニュー / メッセージ / ソース」を実行すると、base64エンコードされたメールのソースが新しくウィンドウに表示される。
  2. マルチパートの中から Content-Type が text/html な部分を CotEditor 等にカットアンドペーストして、テキストファイルをデスクトップにファイル保存する。
  3. ターミナルを起動して、base64エンコードコマンドを実行してHTMLソースファイルを保存する。
    ~/Desktop$ base64 -D mail.txt > mail.html

この後ブラウザでmail.htmlを表示したところ、メーラーでブラウジング表示したように表示されました。

 htmlmail

ブラウザの要素の検証でソースを見ると、

  • 全体は table タグでレイアウト
  • CSSはタグに直接指定
  • 画像は添付されておらず src に httpリンク

など、HTMLメールを送るためのテクニックがあるようです。

 

Firefox(27.0.1)の 要素の調査 を非表示にするには

Webアプリケーション開発で長らくFirebug を利用していたので、標準の開発ツールにうまく馴染めない。右クリックで「要素の調査」を選択してしまいその度嘆いていたので、このメニューを非表示にする事にしました。

Firefox のアドレスバーで「about:config」を入力し、「動作保証対象外」という恐ろしい表示から「細心の注意を払って使用する」を選択すると、設定の一覧が表示されます。

検索バーで「inspector」と入力、「devtools.inspecotr.enabled」を「false」にすればOKです。ブラウザの再起動は必要ありません。

ffdisi

参考サイト:disable firefox built in inspector