Take it easy!

Archive for 4月, 2009

効率を追求すると逆効果

by achi on Apr.28, 2009, under プログラム

  2009年1月に着手したプログラムがある。
社内で利用するものだが、一旦社外のサーバーへ接続してデータを取得。その後データを自動編集して全銀フォーマットに成形するものである。

初期段階で基幹データ処理を委託している業者のサーバーへの接続手続きがあって、そこで当然IDとパスワードをエントリする必要が発生する。
利用する部署はその手の管理に疎い(と勝手に想像・・・)人が多いため、それらの管理はこちらで実施する事としてまず当面はIDもパスワードもプログラム内に埋め込もうと考えた。
もちろん本稼働時には仕組を変えたい。

最初に接続して圧縮されたデータを取得し、取得完了後に圧縮ファイルの解凍までを操作せずに流すようにしてみた。
この時作られたプログラムファイルを逆アセンブリとダンプで解析したところ・・・

 なんと!!!
IDもパスワードも丸見え!!!

予想はしていたものの、実際に見えるとびっくりするもんだ。。。
いくら内部だけで利用するとは言え、こんな仕様ではあまりに危険だと感じて、何とかせねば、とずっと試行錯誤していたわけである。

数日前に「文字を別のコードなどで置き換えてはどうかな」と考え始め、まずはChr関数を使ってダイレクトに表記しない方法を試してみる。
しかし変数に格納する段階で変数が定数的に確定扱いになっているようで、コンパイルするとまんま記述されてしまう事が判明。

う~ん、と悩んで部下にも正直に相談して、何と部下から一つのヒントが出てきた。

「変数と言う物は可変扱いですから、構造的に二段階くらいで変数を置き換えてはどうでしょう」

う~ん、何だか意味がよくわかんねぇけど、とにかくやってみるか。。。

自己流の二層変数(そんな名称でいいんかい・・・)をつくり出した。
こんな感じ。

Dim Str1 As String = “0123456789.”
Dim Str2 As String = “abcdefghijklmnopqrstuvwxyz”
Dim Str3 As String = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”
Dim ipad1 As Integer = 2, ipad2 As Integer = 10, ipad3 As Integer = 3, ipad4 As Integer = 11
Dim ipad5 As Integer = 2, ipad6 As Integer = 7, ipad7 As Integer = 9, ipad8 As Integer = 11
Dim ipad9 As Integer = 4, ipada As Integer = 5, ipadb As Integer = 3, ipadc As Integer = 4
Dim ServAdr As String = “”
ServAdr = Microsoft.VisualBasic.Mid(Str1, ipad1, 1) & Microsoft.VisualBasic.Mid(Str1, ipad2, 1) & Microsoft.VisualBasic.Mid(Str1, ipad3, 1) & Microsoft.VisualBasic.Mid(Str1, ipad4, 1) & _
Microsoft.VisualBasic.Mid(Str1, ipad5, 1) & Microsoft.VisualBasic.Mid(Str1, ipad6, 1) & Microsoft.VisualBasic.Mid(Str1, ipad7, 1) & Microsoft.VisualBasic.Mid(Str1, ipad8, 1) & _
Microsoft.VisualBasic.Mid(Str1, ipad9, 1) & Microsoft.VisualBasic.Mid(Str1, ipada, 1) & Microsoft.VisualBasic.Mid(Str1, ipada, 1) & Microsoft.VisualBasic.Mid(Str1, ipad8, 1) & _
Microsoft.VisualBasic.Mid(Str1, ipadb, 1) & Microsoft.VisualBasic.Mid(Str1, ipadc, 1)

これは接続先のIPアドレスだけを定義する部分だが、同じ理論でIDもパスワードも格納してみて、ランタイムには平文では記述されていないことは確認できた。
もちろんこれで完璧なセキュリティ対策ではないのだが。。。

こんな風に考えると、効率を求めてロジックを組むことに慣れていると、意外な落し穴に気づかない事になる。

Leave a Comment more...

社員総出

by achi on Apr.08, 2009, under Diary

 数ヵ月前から大きなプロジェクトで出張が続く息子。

苦労の連続で失敗も多い様子でかなりめげていた。責任感も強いのでなおさらだとは思うが、どんどん仲間や上司に相談するようアドバイスしていた。

チーム構成までは知らないが、とても追い付く状況では無いだろうと案じていた。

「いよいよ社員総出で取り組むことになった」とメッセージが入った。

どんなに大変でも、社員総出を可能に出来る企業の体質とはどういうものだろう。

恥ずかしい話だが、私の勤務先では不可能では無いかと感じている。

それぞれの社員が受け持っている業務は確実に異なり、納期も限られているものも多い。もし自分が「だれそれの応援にすぐ行ってくれないか」と依頼されて動けるかと言うと難しいと思う。

こんな連携が出来る企業が実際に存在する。

問題はそれなりにあるだろうが、こうやって動ける企業に魅力を感じる。

動いてくれる社員さんにも魅力を感じる。

とても素晴らしい事だと感じた。

Leave a Comment more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...

Archives

All entries, chronologically...