お蕎麦なら干乾びてしまいそうよ?

久しぶりにちゃんとした技術ネタよ。特に、いわゆるWebアプリケーション*1を作ったり設計したりしている連中は耳かっぽじってお聞きなさい。よろしくってかしら?


なんていうか…なんとも言えず愚かなセキュリティホールを拝見いたしましたの私ったら。
そのサイトは、セブンアンドワイ株式会社さんの運営なさってらっしゃる セブンアンドワイ ( http://www.7andy.jp/ ) 。
あたくしったら、ここの会員になってみましたの。で………とても驚くものを拝見したわ?


会員情報の変更画面があるの。
少なくとも今時点では、メールアドレスを変更する、住所/電話番号を変更する、ID/パスワードを変更する、の3つのメニューがあるわ*2
もちろんこの時点で「3つともURL一緒じゃん」とかいう突っ込みは置いておくとして。とりあえずその画面に伺ってみると………そこには、驚くべき出来事が待ち受けていてよ?


その画面には、パスワードと、パスワード(確認)の入力項目があるの。………ちょっとばっかり冷静に見ると。INPUT boxの中が、なぜか*で埋まっているわ?
ええもちろん「それはダミーでね」って可能性が否定できるものではないと思うの。となると…やっぱり女としては「つい裏側を覗いてみたくなる」ものではなくってかしら?
もちろん拝見させていただくわ「御宅のHTMLソースコード拝見」のお時間よ?

お嬢様? どうなさいましたか、いきなり悲鳴を上げられて………をを気絶なさっている!! はやくラベンダー油をお持ちしなければ!!!

ああバトラー、ローズマリー油を持ってきて頂戴? このままじゃ早晩記憶を失ってしまいそうよ?

ふぅ…びっくりしたわ。………正気かしら?
hiddenに、パスワード、ダイレクトに生にそのまんま拝見できる状態で書いてあるってどういうことかしら?
…言っててまた眩暈してきたわよ。
なんていうか…ありえないわ? こんな愚にして堕なサイト、まだ存在していたのね?


しかも、その次の確認画面がまたなんとも秀逸だわ?
hidden項目のオンパレード。CIDとかってのも気になる感じですしemailやuser_id がダイレクトに入っていたりするのも物凄く気になるんですけれども。
hidden.item.keyってなにかしら? hiddenとはいえ4000バイト以上のデータ持たせるのって大抵正気の沙汰とは思えなくってよ?*3
しかもそのデータときたら、0-9とa-fまでしか使っていないの。あらあらこれってまるで16進数を拝見しているみたいじゃなくってかしら?
ええもちろん。その16進数からjava.util.Hashtable とか jp.ne.eshopping.eshop.member.EsiChgMembersInfoCtrlsr とか jp.ne.eshopping.was.base.WasParameter とかなんて文字列が推測できるなんて事は決してありませんことよ?
当然、入力データが生で見れるなんてこともなければ、書き換えられそうだなんて感じの印象を持つこともありませんわ?
ですからもちろん「Hashtableシリアライズしただけじゃん」とか「どうせinのチェックしてないだろうからデータ改ざんして」とか「データ領域あふれされることが出来たら」とか、そんな邪悪な発想なんてまったくありませんことよ、ええ(邪笑


…こんだけ突っ込みどころ満載でダメなサイトも久しぶりだわね?
どうかしら、これを設計なさった方は、是非一度「0からやり直してみては」如何かしら?


もちろんこんだけダメなサイトですもの。ここで終わらないあたりがなんとも期待を裏切らない感じだわ?
あたくしは、まず6月の終わりごろにご連絡を差し上げましたの。早急な窓口からの返信と、ちょっと遅くはあったんですけれども技術系の部署と思われるところからの丁寧な返信があったので、あたくしはとても安心しておりましたの。
どんな御仁だって、ミスくらいは起こしますわ*4。何はともあれ、きちんとしたお返事が頂戴できるのであれば、あたくしとしても「ご連絡差し上げてよござんしたわ」って思えて、豊満な胸をなでおろしつつゆっくりできるんですけれども。


…8月に入ってなおまったく改善されていないってどういうことなのかしら?
もちろんあたくしとしては再度ご連絡を差し上げたわ。「いったいどうなっているのかしら?」って。
でも…残念なことに。まったく同様に「色よくなにも理解していない雰囲気を漂わせた上っ面だけの回答」がかえってきてよ?
挙句に出てきたのが「8末を目処に修正を予定している」ですって? 冗談じゃなくってよ?


一応ここで、修正方法を教えておいてあげるわ?
パスワードは当然ながら、value部分には何も入れないの。で、処理の時に


if ("" != password) {
パスワード変更用処理
}
っていう風に流すの。たったこれだけの修正にどれくらい時間かけるつもりかしら?
データの持ちまわり方は…javaでしょ? session関連のクラスくらいた〜っぷりと存在していてよ?
もちろん場当たり的に「とりあえずデータをちゃんとした暗号関数使って暗号化する」って手もありえるわ?
こんなもん、せいぜい数時間以内に対応すべき内容よ?
しかも、そういった時間の話をしたらかえってきたのは

弊社ではお客様へのご回答は、
お問い合わせいただきました順に随時ご対応させていただいております。

ですって? まぁそれじゃ「6月末より以前からず〜っと並んでいる」のかしら?
もうちょっと状況をきちんとご覧になってからご返信あそばせ?
「もうちょっとで対応できます」もあんまり過ぎると信用を失ってしまいましてよ?
まぁもっとも。

先日よりご指摘いただいております件でございますが、
弊社担当部署でも現象は把握いたしております。

ってあたりが…把握できてないんだか理解できてないんだか、いい感じに過ぎるわね。
そんな認識なら、きっと「どこまでもどこまでも」お客を「もうちょっと」って言って待たせてしまいそうだわね?


結局のところ。素人としか思えない設計とつくりと、その後で客のクレームを上っ面だけで流していく厚顔無恥なやり口が、どこまでもサイトの品位を叩き落しているわ?
カスタマーサービスからのメールが全部「違う人だった」あたりからして…もしかしたら、連携すらろくすっぽ出来てないんじゃないかしら、って勘繰りすら出来てしまうわ?
こんなんじゃ、見えない部分のセキュリティなんてもっと酷くて惨いことがいくらでも想像できてしまってよ?


始まりは大切で、でもその後の事後処理っていうのはそれ以上に大切なの。
もっとも、どちらも出来てないんじゃ、論じても詮無いことなのかしら?
ほら、きっと現場はとてもお疲れよ? 特製のロイヤルミルクティは如何かしら? たっぷりの粉砂糖が入った、天にも昇るほどに素敵なお味よ?


追記よ。
さきほど、メールがまた来てたんですけれども。

お問い合わせの件につきましては、
先程もご案内いたしましたが、
担当部署でも現象の把握ができております。

あらあらちゃんと把握できているのねぇすごいわぁ。
「もし」本当に把握できているとして。あたしなら、金切り声上げて技術部に殴りこみにいってるような気がしてよ?
ま、状況わかってて「あと一月」とか言ってるんですから…きっと大丈夫なんじゃなくってかしら?
「なにが」大丈夫なのかなんて、あたしのセンスじゃ全然わからないんですけれども。


*1:この呼称大っ嫌いなのよねぇ。いいじゃないCGIで、って思わなくってかしら?

*2:…たしか以前は「登録内容の確認/変更」って1つのリンクだったように思ったんですけど、気のせいだったかしら?

*3:そも「データを持つこと」自体がおかしさの極みなんですけれども

*4:っていうほどヌルいミスでもないように思われるんですけれども…