2009年12月21日
てきとうプログラマー
手の甲がしもやけでガサガサになってるYT@ゼロファクトリーです。寒い・・・。
まぁーあの、全国のプログラマーのみなさんも寒さで手がかじかんでるせいか知りませんが、先週やっちゃいましたね、セブン&アイが。
セブンネットショッピングで情報漏えい!「勝手に決済して送りつけている」
セブン個人情報流出問題、ついに ITmediaに掲載される・・・セブン「XSS脆弱性はもう対策した(キリッ」→即XSS脆弱性が見つかる
うひぃー、怖い。
何ヶ月も前から指摘はされてたようですが、なんで放置しちゃうかな。
こーゆーのがあるからー!
この業界にいる人間は、電子マネーとか、WEBでのクレジット決済とか怖くてできないんすよ。
だって大手が受けたシステムでも実際コーディングしてるの、5次受けの個人業者とか派遣のにーちゃん、ねーちゃんがやってるんですよ?怖くて使えん。
たいしたサービスないけどウチも気をつけなきゃ。
一般のかたにプログラマーていう職種のひとがどういうイメージで捉えられてるか知りませんけれども、こういうの見てもわかるとおり、WEB系のプログラマーていうのは非常にいい加減です。(業務系のアプリ作ってるのからWEB系に転向したひとも同様!)
ぼくが過去に実際見た、いい加減っぷりをちょっと晒していこうかと思いますので、WEBサービスを使う時は注意です、注意。
英単語が書けない・読めない
非常によく見るんですが、
* 「登録する」という意味で使われる「regist」(正しくは「register」)
* 「検索する」という意味で使われる「serch」または「sarch」(正しくは「search」)
* 「完了」という意味で使われる「complate」(正しくは「complete」)
* 「確認する」という意味で使われる「confarm」(正しくは「confirm」)
↑この4つは、プログラマー式勘違い英会話の四天王です。よく見る。(特にregist)
ちょっと辞書で調べるという手間を惜しんだために、世界に恥をさらすことになんだもん、怖いすね!ぼくも気をつけないと。
後は「delete」を平気で「ディレート」と読んだり、「denied」を「デニード」と読んだり・・・。
See also:regist という英語は無い
で、一見クリティカルな問題には発展しなさそうなこの勘違い。
だいたいこのテの間違いを平気でしてる(手間を惜しむ)プログラマーは、ほぼ例外なく以下に述べる適当さも併せ持つものです。
外から見てわかりやすく、ひとつの指針になるかと。
適当な認証
ユーザーがログインして、メンバーエリアのコンテンツに入れるってやつ、たいていのサービスにありますね。
あれもcookieのデータを追いかけていくとなかなかすごいモノもあります。
以前実際に見たやつは「login=1」とか「userid=3451」みたいなもんをcookieに渡して、値があるかないかで、ログイン状態を判別してるやつ。これが一番ひどい。
cookieに突っ込むならせめて暗号化せぇよ・・・。問題はそこではないけど・・・。
あと、ユーザー認証をするのがログインフォームのとこだけで、あとは素通りとか。
URL直接打つとメンバーエリア丸見え。今回のセブン&アイのやつも、詳しく見てないですけどこれに似てるっぽい。
適当な入力チェック
登録画面なんかでよく見る、フォーム入力→確認画面→登録完了画面
・・・の流れですが、これの「フォーム入力→確認画面」間はバリデートを行い、「確認画面→登録完了画面」間はバリデートしない、というモノ。
確認画面中に、<input type="hidden".... とかで書いてあるvalue値を動的に書き直したら、不正な値を突っ込めてしまう。
2回同じとこを通せば済む話しなのに、なにがめんどくさいんだろうねぇ・・・。
で、これを指摘すると、「だーいじょぶっすよ。そんなことするやついませんってwww」とか平気で言っちゃう。
怖いでしょ?「そんなことするやつ」が現れてからでは遅いんですが。
あとはよくある話しで、数字しか入力しちゃいけない箇所で数字以外も入力できるやつとか。
入力のチェックは「値が入力されているか、いないか」でしかチェックしてないとか。
(↑これは5年前に比べて大分少なくなってきた。)
延々と増え続けるデータ
オープンソースでなんでもかんでも無料になっちゃう時代ですけれども、なんで我々が廃業せずにすむのかというと、このテのプログラムにはたいてい大きな落とし穴があり、長期の運用に耐えないものがけっこう多いからです。
タダより高いものはないんですよ?(と、一応アピール)
処理を軽くするためにキャッシュファイルを使って軽減化を図る・・・みたいなとこはよく出来てるんですが、そのキャッシュファイルを定期的に掃除する機能がない、とか。
ユーザー操作をトラッキングできるように詳細なログを取る機能がある・・・しかし、そのログを定期的に削除する機能がなく、いつの間にかデータベースが肥大化する、とか。
別にオープンソースに限ったことでもないですが、よくある話しです。
このテの「長期で運用して初めて出る不具合」というのは、たいていの場合あらかじめ対処することが可能です。
本人の想像力次第、ですけどね。
・・・といういうふうに。
上記の問題点は、指摘されなきゃ一生気づかないかもしれない、ていうことです。
逆に言えばできるひとは最初からできるんです。
どうすりゃいいのかねぇ・・・。
プロジェクト単位で派遣されてるプログラマーなんかは、自分の担当箇所が終わったらあとは野となれ山となれ、でしょうから保守担当が泣くことになる、なんていうパターンは多そう。
設計ミスを指摘しても自分の仕事が増えるのはイヤでしょうしね。
だから、大手のシステムほど危険ですよ・・・。(笑)
まー偉そうに語ってるぼくだって、データベース直接操作してて、間違ってデータ丸ごと全部消しちゃったこともありますしね!
オマエいっつも他のプログラマーには「バックアップ取ってからいじれ」って言ってるじゃねーかよ、って話しですよね!
この話しを他人にするとみんな血の気が引いたような顔で「え・・・、それ・・・、どうしたの・・・?」って絶句されますしね!(数時間前のバックアップから復旧)
上に挙げた例なんかホント可愛いもんですよ!ガハハハ!
・・・要するに。
要するにですよ。
プログラマー稼業は神経太くないと務まらないっていう話しです。(はなし変わってキター
Posted by YT@ゼロファクトリー : 12/21 | コメント (3)
コメント
はじめまして。検索エンジンより参りました。
セブン&アイ怖いですね。
しょっちゅうクレジット決済してますが、
ちゃんと確認していませんでした。
気をつけないとダメですね。
コメントありがとうございます。
あららー、セブンショップご利用ならカードの明細書に要注意!ですね。
被害が大きくなる前に収束すると良いですが。
はじめまして!
いつも拝見させていただいているのですが、
コメントははじめてです☆
セブン&アイ怖いんですね…。
本当に気をつけなくちゃですね!!