まず、最も解りやすい SQL の中で用いられる ' ( シングルクォート ) という記号 ですが、これを使って SQL インジェクションを起こす例が解りやすいと思いますし、 世の中でもいろいろ事例は紹介されています。 しかし、この方法で SQL インジェクションが起きると言う事は、入力データに ' が一つ含まれていると、SQL そのものがエラーになります。 SQL インジェクションを起こせる WEB アプリは作るのは簡単です。デバッグしな ければ出来上がります。ですが、それ以前に入力値の ' をエラーにならないように 変換するのは『常識中の常識』のはずなんです。 もちろん、それだけで全て解決するわけではありませんが、余程『マヌケ』なエンジ ニアがリーダで無い限りそんな事が起こるはずが無いのですが。 もし、そんな事があったとしたら・・・何かかねじれている『人災』と言えます。 または、個人営業か、小さな会社で経験の少ないプログラマ数人でやってるとかです。 それと、例え千歩譲って SQL インジェクションが可能だとしても、そこから全ての システムが見渡せる程『システム』って単純じゃ無いんです。テーブル数は数百あっ たり、100を越える列のあるテーブルがあったり、データも記号や数字しか入って無 かったりで、設計書があったとしても『謎』だらけなのがシステムってもんです。 そりゃあ、悪者からすれば、個人情報をピンポイントで探せば良いのかもしれませ んが、例え見つけても『暗号化』や『符号化』というような、そのままではどうにも ならないものが手に入るだけで、そこから個人情報を悪事に使えるようにするには まだハードルがあります。 ふつーのエンジニアだったら、そこが一番大事な事は解っているので、当然防御は 何重もやってるはずで、インターネットをちょっと検索して出てくるくらいの方法 でどーにかなるものでも無いんですけれど。 仮に、一万歩譲って、ハッシュ化のアルゴリズムが解って、ハッシュ後の値が解った からと言って、漏れるパスワードは短くガードの弱い辞書に乗ってそうなパスワード だけなんですけれど。 怖いのは、サーバーソフトか人間の脆弱性です 関連する記事 クロスサイトスクリプティングは少なくともプログラマにしか理解できないと思います 『会員IDやパスワードが第三者によって不正に抜き取られた』とはどういう事か
|
【知恵メモ : ネットセキュリティの最新記事】