2015-08-11

仕事バグを見つけたけど黙っておこう

VB+Oracleのクラサバのプロジェクトのところに派遣された。

↓これみたいに、SQLを実行する前後を BeginTransaction〜commit/rollback で挟んでいるのだけど、

        transaction = connection.BeginTransaction(・・・)
        command.CommandText = "INSERT INTO ・・・"
        command.ExecuteNonQuery()
        transaction.Commit()

↓のように、commandとtransactionを関連付けないと、トランザクション関係なく実行されちゃうよな。

        transaction = connection.BeginTransaction(・・・)
        command.Transaction = transaction
        command.CommandText = "INSERT INTO ・・・"
        command.ExecuteNonQuery()
        transaction.Commit()

プロジェクトトランザクションを使っているところを全部確認したけど、一箇所もcommandとtransactionを関連付けてるところがなかったわ。

まあ何年もまえからやってるプロジェクト問題になってないんだから、俺が指摘して問題にすることもないかな。

あと、Oracle接続するユーザーパスワードが.iniに保存されていて、それもいいのかよって感じだったわ。

アプリ自体にはログイン機能とか権限によってデータアクセス制限があるのに、アプリ経由しないで直接Oracle接続したら全部の情報見放題になるわ。

開発現場は、派遣PCネット接続させないとか生データは見せないとか情報漏洩に神経を使ってるに、実際に運用されるであろう現場ではゆるゆるっていう。

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん