2006年02月23日(木)

SQLインジェクションって

テーマ:ソフトウェア

SQLインジェクションって言葉ご存知ですか?


WEBアプリ開発者なら常識なのかもしれません。

恥ずかしながら私は先ほど初めてこの言葉を知りました。

ネットで調べ物をしてたときに引っかかりました。


どういうことかというと、ログイン画面のチェックロジックが以下のようなSQLになっていた場合、


SELECT * FROM user WHERE userid='" & userId & "' AND password='" & password & "'"


ユーザ名、パスワード欄に「' OR 'A'='A」と入力すると、実行されるSQL文は、

SELECT * FROM user WHERE userid='' OR 'A'='A' AND password='' OR 'A'='A'となります。


このSQL文だと、WHERE句に指定した条件が変わってしまい、ログイン可能となってしまいます。

さらに、ユーザIDが分かっていれば、普通のログインとなんら変わらない状態でシステムが利用可能状態となりますので、ログインチェックの意味がなくなります。


こういったSQLの差込をすることをSQLインジェクションというらしいです。

実装によっては、DELETE文やUPDATE文も差し込める可能性があります。


何でも以前のカカクコムの情報流出事件は、この方法が使われたとか?


SQLインジェクションができるってのは、明らかにシステムのバグで、原因がはっきりすれば、作った側にも責任が生じるんじゃないかと思います。


私は、今まで外部に公開しない、社内専用の業務システム開発がほとんどでしたので、あまり気にしたことが無く、ログインロジックは実装するものの、実運用ではユーザが1種類しかなかったり、パスワードを設定していなかったり、ユーザ名とパスワードが同じだったりと、作る側も、使う側もセキュリティをあまり意識していなかったので、多分今まで作ったシステムの中にもこの手法が使えてしまうものがあるような気がします。


SQL文を入力欄に書くなんてテストはやっていませんし。



ちょっと気になって、今作っているシステムのログイン画面で、

同じように入力してみたところ・・ログインできてしまいました!!


まぁ、今作っているシステムは、ログイン画面どうこう以前に、URL直書きすれば好きな画面を直接開けてしまったり、重要な引数をQueryStringで渡していて丸見えなので、セキュリティなんて無いに等しいのですが。


もっと真剣に考えていかなければいけません。

まだまだ勉強不足です。

2006年02月14日(火)

電車でイビキかいて寝れる人

テーマ:ブログ
今電車の中です。

イビキかいて寝てる人がいます。

あれだけ思いっきり寝れると、駅に着く頃にはすっきりできるんでしょうね。

私は電車では寝れない人なので、ある意味うらやましい。
2006年02月03日(金)

ここが変だよ、日本人!

テーマ:ブログ

以前、中国人の技術者から聞いた話です。


日本に来ておかしいと思ったことのひとつに、横断歩道のある信号待ちでの日本人の行動を挙げていました。


信号が赤の場合、青になるまで待つのが一般常識ですが、赤でも渡ってしまうことがあります。

それがおかしいのではなく、最初は赤で待っているのに、ある人が渡ったのを見て周りの何人かもつられるように渡りだすのがおかしいのです。


『赤信号、みんなで渡れば怖くない』といったフレーズを以前どこかで聞いたような気がしますが、まさにその状態。


実際には怖いとか怖くないとかそういう問題ではなく、何人で渡ろうとも車は突っ込んでくるわけですが。。。


1人渡れたから、きっと大丈夫だろう。という意識が生まれるのは、今にも落ちそうな吊り橋を渡るときの心境と同じようなものなんでしょうか。


中国人がそのようなことを一切やらないのかどうかはわからないのですが、その中国人はこの行動をおかしいと思ったそうです。


私も最近思います。確かに誰か1人が渡ると、続けて何人かが後をつけるように渡っていきます。


1人目のときは確かに車は来ていなかったので無事渡れているんですが、その後について渡っている人には、曲がってくるタクシーなどにクラクションを鳴らされたり、時には危ない状況も見受けられます。


これが日本人特有の心理なのか、名古屋人の心理なのかは分かりません。


そういう自分もたまに同じような心境に陥りそうになるときはあります。

急いでいるとき、どうみても車は来そうにないとき。


でも、そんなときは、その中国人の言葉を思い出し、踏みとどまるようにしています。


 皆さんも横断歩道で待っている暇なときには、周りの人たちをウォッチングしてみてください。


でもやっぱり危ないので、赤信号で渡るのはやめましょう!

2006年02月03日(金)

マリオカートDSにはまる

テーマ:ブログ

最近、マリオカートDSに夢中です。

任天堂
マリオカートDS

昔からあるマリオカートと基本的には同じなのですが、一番すごいのは、ネットワークを通じて世界の人たちと対戦できるってことです。


やり方は実に簡単で、自宅に無線LANがあれば、DSからアクセスポイントを検索して、見つかったポイントに接続するだけです。IP設定など余計なことは一切必要ありません。

いとも簡単に対戦可能になります。


対戦は最大4人でできるんですが、時間によってはなかなか人が集まりません。

このゲームには、ネットゲームに良くあるチャット機能がないので、相手の思っていることや挨拶など一切できません。画面にはニックネームが表示されるのみです。

なので、ネットゲームにありがちなコミュニケーショントラブルが起こりません。


対戦中、相手の車には色分けで名前タグが表示されていて、その色で相手の地域(国)がある程度わかるようになっています。


ヨーロッパの人などと対戦しているときには、なんだか不思議な気持ちになります。


時差があるだろうから相手はいったい何時にゲームやってるんだろうなどと考えながら対戦してるんですが、ネット対戦するような人はたいていぶっちぎりで早くて、即視界から消えてしまいます。(初心者も当然混ざっていますので、だいたいドベ争いしてます。。。)


まだまだぜんぜん実力が伴っていないんですが、果敢にも世界に挑戦しています。

余計な会話がないので、初心者でも気軽にネット対戦できるのがこのゲームの良いところではないかと思います。


ネット対戦なんて・・ と怖がらずに一度お試しを。 とても手軽にネット対戦を体験できますよ。



Amebaおすすめキーワード

    アメーバに会員登録して、ブログをつくろう! powered by Ameba (アメーバ)|ブログを中心とした登録無料サイト