Categories
Uncategorized

プロフェッショナルの仕事

先日、何年か振りの脆弱性報告をもらって Contact Form 7 のセキュリティリリースを出したんですけど、予想外に大きな反応があって WordPress Tavern に取り上げられたりもしました。

さまざまなメディアがあれこれ書いているのを読んでいて際立っていたのが Wordfence のこちらの記事です。

特に感銘を受けた部分を抜き出して日本語訳してみます。

Contact Form 7 には数々の被害軽減策が設けられているのでこの脆弱性を利用しても不正利用を完遂するのは難しいだろう:

– アップロードされたファイルはランダムな名前が振られたフォルダに一時的に格納されて、メールに添付したらすぐ削除される。つまり攻撃者はまずランダムなフォルダ名を判定する必要があり(ディレクトリインデックスが有効になってるとかなければ無理)、しかもそれをディレクトリとアップロードファイルが削除されるまでの一瞬のうちにやり遂げないといけない。

– Contact Form 7 は .htaccess ファイルを使ってアップロードされたファイルへの直接アクセスができないようにしている(これができないとコードの実行もできない)。これは Apache のサイトでしか機能しない対策ではあるが、サイトに別の脆弱性があってそこに付け込まれるとかない限り、アップロードファイルの実行は阻止されるだろう。

– ファイル名は許可された拡張子のものでなければならない。二重拡張子を持った任意のアップロードファイルに PHP ハンドラーを割り当てるような Apache 設定というのは通常はみられない。

なぜこれに感銘を受けたかというと、こんなことはマニュアルのどこにも載ってないんですよ。この記者と三好の間に事前の nemawashi があったとかそんなこともありません。推測ですがこの記者は Contact Form 7 のコードを独自に調査してファイル処理のフローを確認してこれを書いたとしか考えられません。しかも、僕がリリースノートを書いて寝て起きたらこの記事が出回ってたんですよ。半日も経ってない。

それにひきかえ、なんて言って別の誰かをこき下ろそうとするのはよくない癖だよなとは思いつつも書いてしまうのですが、先日日本の大手ホスティングサービスの広報記事で Contact Form 7 が名指しされるということがあったんですが、

Contact Form 7 に問題があるみたいに聞こえてなんか感じ悪い、というのはとりあえず脇に置くとして(てゆーか海外のホスティング会社からこんな扱い受けたことないぞ。やったら訴えられたりするんじゃないの)、まずさくらインターネットさん、名前出すんだったら公式サイトのマニュアルにリンクぐらいしましょうよ。意味ないじゃないですか。エックスサーバーさん、リンクしてくれてありがとうございます。でも最重要のセキュリティ設定である Akismet が抜けている一方でセキュリティ設定でもなんでもない承諾確認チェックボックスが取り上げられているのはどういうわけですか。一体何を参考にこれ書いたんですか。

かたや、自らコードを精査し、公正性を疎かにせず、過度の不安や楽観を招かないよう表現を選んで記事を書いた Wordfence。かたや、適当にググって拾ってきた(であろう)情報を元に無責任な記事を書いて流した日本のホスティング会社。どちらもそれでメシ食ってるプロフェッショナルなんでしょうけど、仕事への取り組み方がこうも違うものかと愕然とするのです。

Categories
Book Review

Form Design Patterns

ウェブサイトで最も重要な要素はフォームです。

Categories
Uncategorized

今年買って良かったもの

ダイソンのドライヤー

Dyson Supersonic Ionic

普通のドライヤーが水道の蛇口だとしたら、ダイソンのこれは温泉の源泉かと思えるほど、あふれ出す空気の量が格段に違います。ドライヤーというものに持っていた固定観念が完全に覆されました。余分な熱もなくすぐに乾くので髪や地肌へのダメージも他の製品と比べて少ないと思います。

サイズが大きいので置き場所に困るということはあるかもしれません。そういう場合は無印良品のキッチン用品売り場にあるコットンメッシュバッグがおすすめです。うちではS字フックを使ってこれを洗面所のタオルハンガーから吊り下げています。

日立の洗濯乾燥機

HITACHI ビートウォッシュ BW-DV100E

以前使っていた洗濯機が10年くらいになり、洗濯槽の黒カビがどうがんばっても落ちなくなってきていたので買い替えることにしました。買ったのは日立ビートウォッシュの乾燥機付きのタイプです。10kgのモデルは一人暮らしには不相応な気もしましたが、家電のミラクルで9kgのモデルより安くなっていたのでこちらにしました。

「ナイアガラ洗い」とか「ナイアガラすすぎ」とか、いちいちかっこいい名前が機能についているんですが、その名の示すとおりバッシャバッシャとダイナミックに洗濯してくれます。ごみを処理しやすい形状の糸くずフィルターが2個装着されているのも気に入っているポイントです。

バルミューダのデスクライト

BALMUDA The Light

医療用の手術灯のメーカーと共同開発したものだそうで、手元に影ができにくい設計になっています。光源自体が目に入らないように真下に向けて使っているのですがそれでも灯りが広範囲をカバーするのでちょっと不思議な感覚です。僕は日頃モニターとキーボードに向かって作業するだけなのであまり実感はないのですが、鉛筆持って書き物することが多い人は重宝するんじゃないかと思います。

LED のデスクライトはどれも明るさが足りない印象を持っていたのですがこれは違いました。6段階で明るさを調整できるのですが普通に机で作業する限り最小設定の明るさで十分です。

ワイヤレスフライトアダプター

RHA Wireless Flight Adapter

飛行機に乗る時はいつもノイズキャンセリング機能付きのワイヤレスヘッドフォンで音楽を聞いているのですが、ふいに映画とか見たくなることがたまにありますよね。そういうときは飛行機に備え付けの有線ヘッドフォンを使うことになりますけどノイズキャンセリングがないので快適でないことが多いです。自前のワイヤレスヘッドフォンの Bluetooth 接続先を iPhone ではなく座席のオーディオジャックにできたらいいと思うんですけど。

機内販売のカタログを見ているとワイヤレスヘッドフォンも扱っていたりするんですが、見るとだいたいフライトアダプターなるものが付属でついてくるようです。Bluetooth 対応の汎用フライトアダプターがあればと検索したところ RHA というスコットランドのメーカーの製品が人気のようだったのでものは試しと購入しました。

プラグが2本付いていて、1穴/2穴両タイプのジャックに対応しています。まだ国内線で一回しか使っていないのですが(1穴ジャック。映画はやってなくて落語聴いてました)、十分期待通りに機能しました。今後フライトの必需品になりそうです。

Categories
Uncategorized

WordBench の10年

WordBench は9月23日に10周年をむかえると同時に、その歴史に幕を引きます。実は、僕は最初に WordBench を始めた人間で、10年間運営に携わり、また今回のサービス終了を提言した当事者でもあります。僕がどういう経緯で WordBench を立ち上げ、何を考えて運営してきて、今回なぜ終わらせなければならなかったのか、そういったことを書き留めておくことも、もしかしたら後々誰かの役にたつかもしれないと思い、久しぶりにブログらしいことをやってみようと思います。

Categories
Uncategorized

7 Lessons Learned from 10 Years of Plugin Development

Last weekend, I attended WordCamp Colombo, which was the first WordCamp ever held in Sri Lanka. It was truly an awesome event with kindhearted people. I’m already looking forward to the next year’s WordCamp in Sri Lanka.

I spoke about some important lessons I have learned from plugin development. Some of my opinions might be controversial. Maybe I should have added “Security” to it. Anyway, here is the slides I used for the speech.

Categories
Uncategorized

WordCamp Kyoto 2017 で「誰でも使えるプラグイン」についてお話ししました

WordCamp Kyoto 2017 で「誰でも使えるプラグインを作りたい – WordPress プラグイン開発者の視点で考えるアクセシビリティ」というお題でお話しさせていただきました

繰り返し書いてるのでしつこいかもしれませんが、私アクセシビリティの専門家ではありません。いち WordPress プラグイン作者の立場から、アクセシビリティへの配慮の重要性とどうやって学んだらいいかということについて、日頃考えていることやこれまでやってきたことをお話ししました。

アクセシビリティに関する情報は豊富に得られるように思われるかもしれませんが、実際探してみると間違いや古い情報に頻繁に出くわしますし何が一体正しいのだ!という気持ちになることがたびたびです。でも考えてみてください、すばらしいお手本が身近にあるじゃないですか。WordPress コアの実装を参考にアクセシビリティを学んだらいいじゃないですか。というのがお話の本旨です。

Categories
Uncategorized

Responsibility of Plugin Developers?

I spoke at WordCamp Singapore and Tokyo earlier this month.

The title was: What is the Responsibility of Plugin Developers? The most common answer from plugin developers would be security, while users might answer user support. I think the responsibility of plugin developers is to keep WordPress accessible for everyone.

Categories
Uncategorized

Why We Should Choose Free Plugins

I made a short speech at WordCamp Tokyo 2015. This is the slides I used.

Categories
Uncategorized

お問い合わせについて語らいました

ごぶさたしております。先週末に『問い合わせフォームを考える市民フォーラムふくおか(仮)』という秘密イベントを福岡で催しました。そもそもの発端は長崎に北島さんというひとが居て、問い合わせフォームのプラグイン作っているらしい、という話題がめ組のチャットで盛り上がりまして、じゃあ僕と確認さんと3人で問い合わせフォームプラグイン座談会でもやったら面白いんじゃないかと、そんな話になったのですが、当初 WordBench 福岡としてやろうかという話でしたが僕はどうも内容が濃くなりすぎるんじゃないかと心配になりまして、それじゃ話す方も聞く方もつらいんじゃないかと、それで最終的に10名参加の招待制の秘密イベントとしてやる運びになったわけです。当日の状況は他の参加メンバーのブログや、WP-D の記事などをご参照ください。

WordCamp Fukuoka 2011 の時に確認さんと初めてお会いしまして、「確認画面のある問い合わせフォームプラグイン」を引っ提げて福岡まで殴り込みに来られたのですが、あれから2年、今度は確認さんのプラグインがきっかけで問い合わせフォームプラグインを作り始めた若手があらわれました。僕の確認画面不要論(ほんとうはめんどくさかっただけですが)への反発から確認さんがフォームを作り始めたことを思い出すと、北島さんの登場でまた立場が変わった確認さんが見ていてとても面白かったです。まあそんなことはいいんですが、ともかく今回初の試みで、WordPress の問い合わせフォームプラグインを開発しているという物好きが集まって日頃思っていることを遠慮なしに語るという、どうなることかと思いましたが、いやー、これは楽しいですね!

3人がそれぞれ自分のプラグインの説明をしたり、問い合わせフォームへの思いを語ったりしたのですが、僕は問い合わせフォームの使い方に顕著に見られる文化的な違いについて話をしました。毎日大量のサポート問い合わせを見ていると、国や言語によって傾向にかなり大きな違いがあることに気づきます。特に目立つのがいわゆる『共有SSL』の利用。もう何年も Contact Form 7 のサポートをやっていますが英語で Shared SSL に関する問い合わせを受けたことは記憶にある限り1回しかありません。ところが日本語での問い合わせでは『共有SSL』環境でどうやったら Contact Form 7 を使えるかという質問が頻繁に来ます。最近になってだいぶ減りましたが以前は日本語の問い合わせの2件に1件ぐらいは『共有SSL』がらみだったように思います。『共有SSL』のリスクが意識されず無警戒に使われ続けてきた土壌が日本にはあるのかな、と思いました。

そういう違いがフォーム周りの使われ方には他にも多々ありまして、確認画面というのもその一つだと思っているんですけど、日本のユーザーはどんなに単純で項目の少ないフォームにでも確認画面が必要だと訴えます。特に企業サイトには確認画面が必須であり、確認画面のないフォームなどプロの仕事ではない、などとのたまう方もいらっしゃる、僕はそれはまったくのナンセンスとしか思わないんですけど、それはそれとして、僕が面白いと思うことの一つはどうして問い合わせフォームの使われ方にはこうも特徴があらわれやすいのか、ということです。コミュニケーションに関わる部分だからなのかもしれませんが、あるいは他にも、ガラパゴスの発生条件がひょっとしたらうまく揃っているのではないか。きっとこれは日本だけではなくて、中国には中国の、アラブ諸国にはアラブ諸国のガラパゴス文明がそれぞれ栄えているのでしょうけど、WordPress のユーザー数や僕の観測可能域からどうしても日本が目立ってしまいます。これについてはいつか研究を進めたいものです。

もうひとつは、こういった独特の文化というのは、プラグインの作り手がそれに合わせないといけない、と考えてしまいがちですが、逆に、使ったツールの仕様がユーザーのものの考え方に影響を与えている部分もあるはずで、例えば日々目にするどの問い合わせフォームにも確認画面があったらそれが当然と思うようになる、確認画面がないと落ち着かなかったりするかもしれませんけど、それが無いのに慣れたら別に困りもせず、無いのが普通と思うようになるでしょう。そういうもので、たかがプラグインですけど WordPress は2割くらいのサイトで使われていますから、そこの1%でもシェアが穫れたら、導入数としてはちょっとあり得ないくらいの数字になるわけで、ウェブ全体への影響力は結構なものになるわけですよね。いま現在ある文化に合わせるばかりでなく、むしろ僕らが文化を作っていくぐらいの気概があれば、もっと可能性が広がって面白いこともできるんじゃないか、確認画面にとらわれ過ぎるな、と、未来ある若者たちを唆してみました。今後面白いことになるといいですね。

僕的にはすごく楽しかったのでぜひまたやりたいと思っています。今度は別の角度からかき回してみたいです。長文失礼しました。また来年!

Categories
Uncategorized

WordCamp Tokyo 2012 でプラグインの有料販売についてお話ししました

土曜日に蒲田で開催された WordCamp Tokyo 2012 に参加してきました。PHP Conference との合同開催とは聞いていたんですが、どでかいホール一室を間仕切りで区切って使うというのは予想外でした。幕張メッセでやってるようなイベントっぽい雰囲気でした。全国から大勢のひとが来ていて、数年ぶりにお会いできたひとも何人か来られていてとても楽しかったです。

いわゆるプレミアム・プラグインの普及が WordPress コミュニティにどのような影響をもたらすかというテーマでプレゼンをさせていただきました。10枚しかないですが、こちらが発表資料です。

以前このブログで Contact Form 7 の永久無償配布を約束しましたように、僕自身は WordPress プラグインやテーマの有料化にははっきりと反対のスタンスです。今回のプレゼンではその理由について、有償プラグインの普及がなぜよくないことなのかをお伝えしたつもりです。利害の分かれる問題でもあるので、いやな気分になった方もいたかもしれません。ごめんなさい。とはいえ、僕はこれが WordPress コミュニティにとって長期的に深刻な問題になると思っているので、嫌われるのを覚悟で敢えてお話しさせていただきました。一回で十分伝わるとは思っていません。今後も機会があればしつこくお話させていただきたいと思いますので、今後ともよろしくお願いいたします。

Update: Ust に録画が上がっておりました。自分で自分のプレゼンは、怖くて見れません。
http://www.ustream.tv/recorded/25417830