ちょっと工夫してLWP使っちゃった
Guns 'N' Rosesが好きで本当に良かった~と思うこのごろです。
もうしばらく前の話になります。
DB作成から設計全般、実装までシステム側を担当して、
新規の案件を作成させていただきました。一人でシステム全担当、
まるっとやるのは初めてでした。ドッキドキだったし、だけどやりがいあった。
データの入稿があり、それを投入させる管理画面からフロントまで、
サーバサイド実装から作ったときなのですが、
入稿ミスを防ぐために、
(言語はPerlです)
use LWP;
を使用して、入力されたURLをチェックしてから入稿させるようにしました。
つまり、
- 入稿データ取り込みプログラム内でLWPでいったんアクセス
- 200返ってきたら、安全なデータとみなす(ダメならエラーログ吐かせて入稿者へ返す)
- DBへInsert!
ということをしました。
・・・結局入稿側がザルでまたーくチェックをしなかったため、
つけといてよかったね。やるね。クールじゃん。とお褒めいただきました。っていう、珍しくナイスHackしちゃった話です。
ただ、なぜ入稿者がザルとわかったかというと、システム側でチェックしがたい誤り(電話番号のマチガイなど)がボロボロでてきて、それで気がついたという怒り新党なエピソードもありました・・・。
さすがに、電話をプログラム内でかけるのは実装してなかったけれど、電話番号や住所も市外局番くらいは、郵政のデータをダウンロードして頑張ればまあチェックはできるので、めっちゃ工数短かったけれど気合で実装すればよかったかなあ、とか、必ず後悔はあるものですねっていう失敗談として締めくくります。
今日はデートでした。
かしこ。