今さら見つかったバグ

かなり前に依頼を受けて納品したウェブサイト、その担当者から、「カナ五十音順の一覧ページで表示されない項目がいくつかあることが分かった」という連絡が来た。
調べて見ると、それらの項目はデータベースには存在しているし、登録状態に問題ない。
次に、五十音順で抽出している処理を見てみると、
[php]
$CONFIG[’50on’] = array(
‘ア’ => array(‘ア’,’イ’,’ウ’,’エ’,’オ’),
‘カ’ => array(‘カ’,’キ’,’ク’,’ケ’,’コ’),
‘サ’ => array(‘サ’,’シ’,’ス’,’セ’,’ソ’),
‘タ’ => array(‘タ’,’チ’,’ツ’,’テ’,’ト’),
‘ナ’ => array(‘ナ’,’ニ’,’ヌ’,’ネ’,’ノ’),
‘ハ’ => array(‘ハ’,’ヒ’,’フ’,’ヘ’,’ホ’),
‘マ’ => array(‘マ’,’ミ’,’ム’,’メ’,’モ’),
‘ヤ’ => array(‘ヤ’,’ユ’,’ヨ’),
‘ラ’ => array(‘ラ’,’リ’,’ル’,’レ’,’ロ’),
‘ワ’ => array(‘ワ’,’ヲ’,’ン’));
[/php]
↑なるほど。正解はこう↓。
[php]
$CONFIG[’50on’] = array(
‘ア’ => array(‘ア’,’イ’,’ウ’,’エ’,’オ’,’ヴ’),
‘カ’ => array(‘カ’,’キ’,’ク’,’ケ’,’コ’,’ガ’,’ギ’,’グ’,’ゲ’,’ゴ’),
‘サ’ => array(‘サ’,’シ’,’ス’,’セ’,’ソ’,’ザ’,’ジ’,’ズ’,’ゼ’,’ゾ’),
‘タ’ => array(‘タ’,’チ’,’ツ’,’テ’,’ト’,’ダ’,’ヂ’,’ヅ’,’デ’,’ド’),
‘ナ’ => array(‘ナ’,’ニ’,’ヌ’,’ネ’,’ノ’),
‘ハ’ => array(‘ハ’,’ヒ’,’フ’,’ヘ’,’ホ’,’バ’,’ビ’,’ブ’,’ベ’,’ボ’,’パ’,’ピ’,’プ’,’ペ’,’ポ’),
‘マ’ => array(‘マ’,’ミ’,’ム’,’メ’,’モ’),
‘ヤ’ => array(‘ヤ’,’ユ’,’ヨ’),
‘ラ’ => array(‘ラ’,’リ’,’ル’,’レ’,’ロ’),
‘ワ’ => array(‘ワ’,’ヲ’,’ン’));
[/php]
今さら見つかったバグでした。人間は失敗する生き物。

決算間際でDELLがサーバを値引きしてくれた

取引先の会社から新しくサーバが必要になったので見繕って欲しいという依頼があった。
そこで、DELLの直販サイトでサーバを選び、BTOでスペックを決め、見積書をダウンロードして、取引先の会社に提出した。
ちなみに、PowerEdge R200という1Uのラックサーバで、Xeon2.66Ghz、RAM8GBで、これを2台。

すると、翌日くらいにDELLの営業から連絡があり、明日までに入金してくれるなら、値引きします、との事。
DELLの決算が近く急いで売上を上げたいので、みたいな事情らしい。
それじゃあという事で、取引先の会社と緊急に協議して、結局その日の内に値引いた金額で注文をした。
取引先の人は安く買えて喜んでくれて、良かった。

その後、もう一度DELLのサイトを見てみると、CPU種別やメモリ容量、HDD容量といったBTOのスペック選択項目が、今回注文した構成と同じにDELLおすすめマークが付いているような?
確か前は違うスペックがおすすめされていたはず。偶然だろうか?
poweredger200

ISP向けアンチスパムメールシステム

取引先の会社の人から、メール不通で困っているので調べて欲しいと依頼を受けた。
自社サーバから自分達の会社のメールアドレスに送っているメールが、急に届かなくなったとの事。
その自社サーバはウェブサイトを運用するサーバ群の一部として動いており、某データセンターにてハウジングしてある。
その会社のメールアドレスは、某レンタルサーバのサービスを利用しており、ネットワーク的にはそのデータセンターとは別。

[自社サーバ/データセンター] → [レンタルサーバ/別のネットワーク]

最初に自社サーバを覗いてみたが、メールサーバソフトの設定に問題はなかった。
そこで、レンタルサーバ会社に連絡を取り、事情を説明すると、今回の件の理由が分かった。
そのレンタルサーバ会社が利用しているアンチスパムメールシステムが、自社サーバをスパムメールサーバと認識しており、接続を拒否してるという。
その自社サーバは会員向けにメルマガを送信するのに使ってるぐらいで、スパムの送信は行っていない。
接続を許可するように変えてくれと依頼するが、アンチスパムメールシステムは外部のサービスを利用しており、自分らでは直接タッチ出来ないとの事。

[自社サーバ] → 【[レンタルサーバ] – [アンチスパムメールシステム/外部]】

最近はレンタルサーバ業者、ISP業者向けに、こういうアンチスパムメールシステムを提供している会社がたくさんあるようだが、こういうのを使っていると誤検出した場合、非常にやっかいだと思う。
原因を特定するのが大変だし、特定してもすぐには直らない。
スパムメール対策は必要と思うが、メールサーバ間のSMTP通信レベルでメールをブロックしてしまうのはどうだろうと思う。
最近のメールクライアントソフトには、迷惑メールを自動判別してフォルダに振り分ける機能が付いてると思う。
それで十分だと思うし、その方が誤検出時のトラブルが少なくていいと思うのだが。
もっと言うと、このようなISP向けアンチスパムメールシステムって、わざわざ金を出して導入するほどなんだろうか?

  1. GmailやYahoo!メールにアカウントを作る。
  2. そのメールアドレスを適当に露出させる。掲示板にメールアドレス付きで何か書き込むとか、怪しげなメルマガに登録するとか。
  3. すると、そのメールアドレスにスパムメールが届くようになるので、
  4. そのスパムメールのヘッダを調べて、送信元メールサーバを収集する。
  5. 後は、そのメールサーバをブラックリストに加えて、自社メールサーバがリストのメールサーバからの接続を拒否するように設定すればよい。

簡単に出来るし、無料だし、誤検出率は低いし、言う事ないと思うのだが。
(ちなみに、スパムメールサーバ扱いされてるそのサーバからのメール、GmailやYahoo!メールには普通に届く。迷惑メールフォルダに振り分けられる事はない。)

IPA 脆弱性関連情報取扱い窓口

知り合いがやっているウェブサイトに、IPA 脆弱性関連情報取扱い窓口という所から、「貴サイトにセキュリティ上の問題がありますので、ご対応下さい」という連絡が来たそうだ。
それで、どう対応すればよいか教えて欲しいという事で、私に話が回ってきた。
IPAから指摘された内容は、単なるHTMLサニタイズ漏れによるXSSでどうでもいいんだけれど(どうでもよくはないか?)、IPAからはメールで連絡があり、そのメールの内容の一部が以下。

以下の手順に従い、問題の詳細をご確認ください。

<詳細情報の確認手順>
1. 添付ファイル「脆弱性関連情報」をデスクトップ等に保存
してください。
2. ファイル名の末尾に「.sda.exe」を追加してください。
3. 鍵のマークの付いたアイコンのファイルに変わりますので、ダブルク
リックしてください。
4. パスワードが聞かれますので、入力してください。

添付ファイルを送ったから、保存して、exeの拡張子を付けて、ダブルクリックしろ、という事。
メールで送られてきた実行ファイルを実行するのって、ちょっと怖い気がする。

gvimをWindowsマシンに導入

普段使ってるWindowsマシンにgvimをインストールした。
viは使い始めて、もう10年くらいになる。
UNIX系OSの設定ファイル書き換えはもちろん、PerlやPHPでの開発にも使ってきた。
GUIで使う事はなく、ローカルのWindowsマシンでPutty等のターミナルソフトを起動し、そこからSSHで外部あるいはローカルの仮想環境のUNIX系OSにログインし、CUIのvimを使うというスタイル。
ローカルのPCではエディタはTeraPad等を使っていて、gvimは使わなかった。
Windowsで開発する場合は言語はJavaやC#なので、EclipseやVisual Studioを使い、gvimの出る幕はなかった。
が、最近JavaScriptを書いていて、書いたファイルはサーバに上げず、ローカルのPCで動かしているけれども、スクリプトだとviは入力や編集の効率がいいなと感じ、gvimを導入した。
これまでまともにgvimを使った事がなかったので、マウスでウィンドウがスクロールしたり、ファイルのアイコンをウィンドウにドラッグアンドドロップすればファイルが開けたりと、ごく当たり前の事で感動を覚えた。