アカウント名:
パスワード:
10桁に満たないパスワードを勝手にスペースで埋めて登録してたんですよね.
あっちが持ってるデータは,10桁に埋められたものから生成されたものですよね.
それを,スペース埋めなくてもいいようにしたってことは,もしかして例の生パスワードを保存してるんですってやつ?
と思ったけど,手動でスペースを入力してたのを,あっちで勝手にスペースを埋めるようにしただけかな.
解決できたという事は平文がどっかに保存されていたということで。
スペースで比較が成功/失敗ってのは Oracle の CHAR/VARCHAR2 あたりの問題だろうか・・・?
私も「解決できた」ってあたりからして、平文パスワードでCHAR/VARCHARの違いが問題になったんだろうと想像しましたが、これは別にOracleに限った話じゃないですよね。
・元のシステムではVARCHAR(10)のカラムに可変長のパスワードを平文保存していた。・新システムも可変長で格納されるのを前提として設計開発。・ところが新システムのDBカラムをCHAR(10)になっていた。データ移行の際、10文字未満のパスワードはスペースが付加されて10桁固定になってしまう・結果、認証時にも、後ろにスペースを付加しないとログインできなくなるって感じで。で、新DBをVARCHAR(10)に直してから、改めてデータ移行し直すことで、復旧、っと。
新システムが開発段階に入ってから、COBOL流れの「固定長信者」な設計者が、影響を深く考えずに横やりを入れて、データ型をCHAR(10)に変えちゃった、というのを想像しました。
たしかに、ありそう。
だとしても、性根がCOBOLerかどうかよりも、ザルなテストしかしていなさそうな性根の方がよっぽど罪。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはただ死んだだけでなく、本当にひどい臭いを放ち始めている -- あるソフトウェアエンジニア
なぜ解決できた? (スコア:1)
10桁に満たないパスワードを勝手にスペースで埋めて登録してたんですよね.
あっちが持ってるデータは,10桁に埋められたものから生成されたものですよね.
それを,スペース埋めなくてもいいようにしたってことは,もしかして例の生パスワードを保存してるんですってやつ?
と思ったけど,手動でスペースを入力してたのを,あっちで勝手にスペースを埋めるようにしただけかな.
Re: (スコア:1)
解決できたという事は平文がどっかに保存されていたということで。
スペースで比較が成功/失敗ってのは Oracle の CHAR/VARCHAR2 あたりの問題だろうか・・・?
Re:なぜ解決できた? (スコア:2)
私も「解決できた」ってあたりからして、平文パスワードでCHAR/VARCHARの違いが問題になったんだろうと想像しましたが、これは別にOracleに限った話じゃないですよね。
・元のシステムではVARCHAR(10)のカラムに可変長のパスワードを平文保存していた。
・新システムも可変長で格納されるのを前提として設計開発。
・ところが新システムのDBカラムをCHAR(10)になっていた。データ移行の際、10文字未満のパスワードはスペースが付加されて10桁固定になってしまう
・結果、認証時にも、後ろにスペースを付加しないとログインできなくなる
って感じで。
で、新DBをVARCHAR(10)に直してから、改めてデータ移行し直すことで、復旧、っと。
新システムが開発段階に入ってから、COBOL流れの「固定長信者」な設計者が、影響を深く考えずに横やりを入れて、データ型をCHAR(10)に変えちゃった、というのを想像しました。
Re: (スコア:0)
たしかに、ありそう。
だとしても、性根がCOBOLerかどうかよりも、ザルなテストしかしていなさそうな性根の方がよっぽど罪。