2018年03月15日に初出の投稿

Last modified: 2018-03-15

メールの文字列が化けるという問題は、幾つかのフェイズなり観点に沿って検討すれば情報セキュリティの問題でもあると言える。そういうわけで、そろそろこの問題について「まともな解説」というものを書こうかと思っている。その最も大きな理由は、もちろん人によって書いている「対策」がバラバラで、mb_send_mail() 関数を使えという人もいれば mail() 関数を使えるという人もいるし、メールのデータを処理するにあたって必要な宣言を欠いている解説もあれば、過剰に設定を変更し過ぎて汎用性がなくなっている解説もあるからだ。また、書いている人の作業環境や PHP やウェブサーバの言語設定なりバージョンが違うことで影響が出ている(他の環境なら言語設定を指定したり変えるべきところを、たまたま自分に都合のよい設定になっているだけだということを自覚していない素人が書いている)可能性もある。こういうことは、最低でも Linux / BSD / Windows / Mac OS などを自分の作業環境として使ったり、Linux でもレンタルサーバや専有サーバなど色々な環境で作業した経験が(さほど多種類かつ長期でなくてもいいが)あるかないかで、自分のやっていることが特定の環境に依存する偏ったことなのかどうかを嗅ぎ分ける力が違ってくる。おおよそ、僕らのようなロートル(もちろん有能な人間に限るが)が若造よりも適切な判断をするのは、そういう色々な環境で面倒臭い状況に出くわしたり失敗してきた数が多いという経験によるのだ。たとえば、いまどき業務でメールを送信するなら、Thunderbird がメールのエンコーディングとは無関係に件名を UTF-8 として表示しようとするクソであることくらいは知っていないといけない。

とにかく、ウェブ・アプリケーションの開発プラットフォームとして Perl や SSI が全盛期だった頃は、まだデザイナーや HTML コーダが手を出し難かっただけあって酷い解説を書こうという人も少なかったが、PHP のように HTML ファイルへコードを埋め込めるマクロのような使い方が(たいていは脆弱な書き方を指南するクソみたいな本のとおりに)できる言語が流行したことによって、足し算を覚えたばかりの子供でも国税庁を攻撃するようなコードを、無料で使えるサービスにアップロードしたり、「社会貢献」として CGM サイト(違和感をもつ思い込みの激しい人には気の毒だが、例えば GitHub)へ公開するようにもなったわけだ。

要するに、オーソドックスな手順や常識的な素養を弁えるということを軽視した結果、我々はバッドノウハウと素人の手習いと悪意のある偽コードに囲まれる結果となった。当然、素人は素人であるがゆえに、正解とまでは言えずとも適切なコードを見分けられないので、単にビジュアルとして整っているというだけのクソみたいな内容のブログや技術者向けサイトを定番として扱う愚行を続けたり、萌え少女をあしらった解説ページとか、幼女をあしらった解説ページとか、眼鏡おねーさんをあしらった・・・要するにバカが飛びつきそうなページに書かれている愚かな解説としての悪貨が広まっていまに至るということである。もちろん、「素養」とは言っても、僕のように Zend Certified Engineer 資格を取れとか・・・国内でやってる資格もあったはずだが、とっくに廃れたので名称も思い出せないが、そういう資格を取れと言っているわけではなく、そういう資格を取れるていどの素養を実質として身に着けるべきなのである。資格試験を受けるつもりがなくても(当然、試験料は何万円もするものが多い)、僕がケアマネージャーや LPIC などの資格試験用テキストを買って読むのは、形式として資格を所持していなくても実質として素養を身に付ければよいことがたくさんあるからだ。形式に意義がないからといって、その実質的な内容まで無視したのでは、そういう人物には形式も内容も何も無いということだ。形式だろうと実質的な内容だろうと素養を欠いた人間が自分の経験だけでものを書く場合の不可避的な欠点というものは、もちろん、その素養のなさと思い込みによる、圧倒的な誤謬である。

ちなみに、何度か計画しては実行していなかったのだが、ウェブコンテンツとして設計したり UX やビジュアルをデザインしたりフロントエンドの挙動を制御したり、個人情報の取り扱いについて法的な要求に対応したりという、一連の制作・開発・運用の実務を解説するテーマとして、「問合わせフォーム」ほど最適なものはないと思っている。ただの問い合わせフォームを公開して運用するだけでも、僕らが実際に仕事で納品するレベルと同じさまざまな要件を満たすために数多くの知識や知恵やテクニックやノウハウが求められる。よって、上記ではメールの送信ということだけをきっかけに書いていたのだが、やはり10年くらい前から温めていたアイデアにもとづいて、今年からページを作って公開していこうと思う。

要するに、問合わせ用だろうとユーザ登録用だろうと、たいていのフォームの設計や挙動や運用は、僕らプロのデザイナーやプログラマやセキュリティマネージャから見れば、幾らでも語りうる興味深い題材なのである。どうしてこういうアプローチのウェブコンテンツや書籍がないのか、不思議なくらいだ。しかし、考えてもみれば当たり前で、コーディングやプログラミングだけだとネタ切れになってしまうからだ。つまり、僕らのようなデザインやコーディングだけではなく、個人情報の取り扱いや法務あるいは簿記会計や決済やデータベース設計や Unix サーバ管理やユーザビリティや UX や労務管理まで考慮できる、「フルスタック・エンジニア」などという小手先野郎を平然と凌駕する領域の人間など殆どいないからだろう。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Google+ Twitter Facebook