SQLインジェクション
先月、カカクコムとOZmallで、
『DBをのっとられて利用者がウイルス感染する』
という事象の事件が立て続けに起こりました。
そこで使われているDBをのっとる方法というのが
『SQLインジェクション』
と呼ばれる手法です。
簡単な例をひとつ。
ユーザIDと暗証番号を入力すると、
自分の個人情報が見れる作りのサイトがあったとします。
Webの画面から、ユーザIDと暗証番号を入れると
まずはそれらが変数に格納されます。
ユーザID → $userid
暗証番号 → $pass
次に、DBに対して、次のようなSQLを投げて結果を取得します。
SELECT * FROM USER_DATA
WHERE USER_ID = '$userid' and PASSWORD = '$pass'
この作りの場合、たとえば、
ユーザID(taro)
暗証番号(1234)
とWebで入力すると、
SELECT * FROM USER_DATA
WHERE USER_ID = 'taro' and PASSWORD = '1234'
というSQLが組み立てられて、
[ユーザーIDがtaroかつ、パスワードが1234]
で一致するデータが存在した場合に結果が表示されます。
では、ここで、
ユーザID(taro)
暗証番号(1234' OR '1' = '1)
と入力したらどうなるでしょう。
SELECT * FROM USER_DATA
WHERE USER_ID = 'taro' and PASSWORD = '1234' OR '1' = '1'
となって、後半のor条件が1=1で必ず真になるので、
前半のユーザIDと暗証番号の一致不一致にかかわらず
DB内に格納された全ユーザの個人情報が表示されてしまいます。
インジェクションとは、注射とか注入とかいう意味で、
開発者が作成した本来のDBへの問い合わせ文(SQL)に対して
自由に文字列を追加して、本来意図していない方法で
DBを操作することを指します。
今日、社内ネットワーク向けのWebシステムを見ていたところ、
数年前に作成された、ある照会システムが見事に
インジェクションできてしまいました(-_-;)
機会を見て、ユーザさんに報告しておこっと。。。
<参考リンク>
SQLインジェクション
警鐘●SQLインジェクションによる不正アクセスに注意
【続報】OZmallへの不正アクセスの手口は「SQLインジェクション」
『DBをのっとられて利用者がウイルス感染する』
という事象の事件が立て続けに起こりました。
そこで使われているDBをのっとる方法というのが
『SQLインジェクション』
と呼ばれる手法です。
簡単な例をひとつ。
ユーザIDと暗証番号を入力すると、
自分の個人情報が見れる作りのサイトがあったとします。
Webの画面から、ユーザIDと暗証番号を入れると
まずはそれらが変数に格納されます。
ユーザID → $userid
暗証番号 → $pass
次に、DBに対して、次のようなSQLを投げて結果を取得します。
SELECT * FROM USER_DATA
WHERE USER_ID = '$userid' and PASSWORD = '$pass'
この作りの場合、たとえば、
ユーザID(taro)
暗証番号(1234)
とWebで入力すると、
SELECT * FROM USER_DATA
WHERE USER_ID = 'taro' and PASSWORD = '1234'
というSQLが組み立てられて、
[ユーザーIDがtaroかつ、パスワードが1234]
で一致するデータが存在した場合に結果が表示されます。
では、ここで、
ユーザID(taro)
暗証番号(1234' OR '1' = '1)
と入力したらどうなるでしょう。
SELECT * FROM USER_DATA
WHERE USER_ID = 'taro' and PASSWORD = '1234' OR '1' = '1'
となって、後半のor条件が1=1で必ず真になるので、
前半のユーザIDと暗証番号の一致不一致にかかわらず
DB内に格納された全ユーザの個人情報が表示されてしまいます。
インジェクションとは、注射とか注入とかいう意味で、
開発者が作成した本来のDBへの問い合わせ文(SQL)に対して
自由に文字列を追加して、本来意図していない方法で
DBを操作することを指します。
今日、社内ネットワーク向けのWebシステムを見ていたところ、
数年前に作成された、ある照会システムが見事に
インジェクションできてしまいました(-_-;)
機会を見て、ユーザさんに報告しておこっと。。。
<参考リンク>
SQLインジェクション
警鐘●SQLインジェクションによる不正アクセスに注意
【続報】OZmallへの不正アクセスの手口は「SQLインジェクション」
簡潔な説明の究極例
『だらだら説明せずに、要点だけを伝えるのが大事』という
昨日の内容を書いてて思い出したのが高橋メソッドです。
要点をまとめて、簡潔に説明するという意味で、
これ以上シンプルなものは無いと思います。
詳しくはこちら↓で見てみましょう。
http://www.rubycolor.org/takahashi/
まじめな内容を説明しててもなんだか笑えてくるので、
新人受けもよさそうだし、皆さんもぜひ覚えて使ってみましょう。
普通の研修に飽きた人とか、固い雰囲気の
プレゼンを打破したい人にオススメの手法です。
昨日の内容を書いてて思い出したのが高橋メソッドです。
要点をまとめて、簡潔に説明するという意味で、
これ以上シンプルなものは無いと思います。
詳しくはこちら↓で見てみましょう。
http://www.rubycolor.org/takahashi/
まじめな内容を説明しててもなんだか笑えてくるので、
新人受けもよさそうだし、皆さんもぜひ覚えて使ってみましょう。
普通の研修に飽きた人とか、固い雰囲気の
プレゼンを打破したい人にオススメの手法です。
最初にどこまで話すべきか
うちの開発部門に新人くん2名が入りました。
といっても、当社の社員ではなく客先の社員さんです。
ここ数年、新卒を採用していなかったということもあり、
客先の会社の社員さんたちもなんだか嬉しそうです。
早速、昨日から教育をやっているようですが、
教える方が張り切りすぎているような気がするので
教わる側がついていけるのかどうかちょっと心配。。。
一日の間に、
担当者AからAシステムの概要(2時間)
担当者BからBシステムの概要(1時間)
担当者CからCシステムの概要(2時間)
のような感じで担当者別にレクチャーが入ってます。
担当者は自分の担当システムのことを丁寧に教えます。
新人君も『ふむふむφ(..)』と聞いてます。
でも、はたしてどれくらい理解できてるんだろう。。。
業務全体を見渡して把握してもらうという意味で、
すべてのシステムの概要を話すのはいいと思うんですけど、
1時間とか2時間とか説明されると、逆に大事な部分が
見えなくなってしまいそうです。
そういう意味では、30分くらいでシステムの柱と
ポイントだけ簡潔に話して、雰囲気を理解してもらう方が
いい様な気がするんですよね。。。
まぁ他社の新人教育なので口は出せませんけど(^-^;)
すくすく育って、早くチームでいっしょに仕事が
できるようになるといいなと思います。
このブログを読んでる新人さんたちも頑張ってください。
といっても、当社の社員ではなく客先の社員さんです。
ここ数年、新卒を採用していなかったということもあり、
客先の会社の社員さんたちもなんだか嬉しそうです。
早速、昨日から教育をやっているようですが、
教える方が張り切りすぎているような気がするので
教わる側がついていけるのかどうかちょっと心配。。。
一日の間に、
担当者AからAシステムの概要(2時間)
担当者BからBシステムの概要(1時間)
担当者CからCシステムの概要(2時間)
のような感じで担当者別にレクチャーが入ってます。
担当者は自分の担当システムのことを丁寧に教えます。
新人君も『ふむふむφ(..)』と聞いてます。
でも、はたしてどれくらい理解できてるんだろう。。。
業務全体を見渡して把握してもらうという意味で、
すべてのシステムの概要を話すのはいいと思うんですけど、
1時間とか2時間とか説明されると、逆に大事な部分が
見えなくなってしまいそうです。
そういう意味では、30分くらいでシステムの柱と
ポイントだけ簡潔に話して、雰囲気を理解してもらう方が
いい様な気がするんですよね。。。
まぁ他社の新人教育なので口は出せませんけど(^-^;)
すくすく育って、早くチームでいっしょに仕事が
できるようになるといいなと思います。
このブログを読んでる新人さんたちも頑張ってください。
給料にビックリ。
うちの会社は25日が給料日です。
先週の24日(火曜日)の定時後に給与明細が
配られたのですが、その時に事件は起こりました。
隣の先輩が、
『あれ?残業代が入ってない!』
と言い出したのです。
急いで自分の明細を見るitpro。
確かに給料は少ないですけど、それはいつものことで、
残業代はきちんと計上されていました。
どうやら、先輩の給料だけ残業代が抜かれているようです。
今期から社内の職制変更があり、
その先輩は新しい職制に変更になった矢先だったので、
『もしかして、今度の役職は残業代無いんじゃないですか?』
と、みんなで話していました。
別の先輩にも確認したところ、その先輩も残業代が
含まれていないとのこと。
これでますます『残業代カット』が濃厚になってきました(-_-;)
そんな話は事前にまったく無かったので、
普段は温厚な先輩も、さすがにちょっとお怒りの様子。
見かねた課長が慌てて本社に問い合わせると
『まちがえちゃった♪(by 本社総務部)』
とのこと。
職制変更による給与計算の設定にミスがあったらしく、
先輩の役職についての残業代計上が漏れていたそうです。
曲がりなりにもIT関連企業だというのに、
自社の社員の給与計算もミスっているようでは
ちょっと先が思いやられます(-_-;)
もしかして、私の給料が安いのも、恒常的に計算ミスを
しているのではないかと思ってしまいました(笑)
この業界で残業代ナシって言われたら、
相当きつい気がするんですけど。。。
(年俸制でいいお給料もらってる人は除く)
まぁなんにせよ、間違いでよかった。
先週の24日(火曜日)の定時後に給与明細が
配られたのですが、その時に事件は起こりました。
隣の先輩が、
『あれ?残業代が入ってない!』
と言い出したのです。
急いで自分の明細を見るitpro。
確かに給料は少ないですけど、それはいつものことで、
残業代はきちんと計上されていました。
どうやら、先輩の給料だけ残業代が抜かれているようです。
今期から社内の職制変更があり、
その先輩は新しい職制に変更になった矢先だったので、
『もしかして、今度の役職は残業代無いんじゃないですか?』
と、みんなで話していました。
別の先輩にも確認したところ、その先輩も残業代が
含まれていないとのこと。
これでますます『残業代カット』が濃厚になってきました(-_-;)
そんな話は事前にまったく無かったので、
普段は温厚な先輩も、さすがにちょっとお怒りの様子。
見かねた課長が慌てて本社に問い合わせると
『まちがえちゃった♪(by 本社総務部)』
とのこと。
職制変更による給与計算の設定にミスがあったらしく、
先輩の役職についての残業代計上が漏れていたそうです。
曲がりなりにもIT関連企業だというのに、
自社の社員の給与計算もミスっているようでは
ちょっと先が思いやられます(-_-;)
もしかして、私の給料が安いのも、恒常的に計算ミスを
しているのではないかと思ってしまいました(笑)
この業界で残業代ナシって言われたら、
相当きつい気がするんですけど。。。
(年俸制でいいお給料もらってる人は除く)
まぁなんにせよ、間違いでよかった。
すーぱーSE.jp開設
最近ブログの更新が滞っててすみません。
面倒になってサボっているというわけではなく
ここのところ別の作業をしていたので更新ができませんでした。
理由はコレです(↓)
http://superse.jp/
そうです、ドメインをとってみたのです(^-^)丿
それの手続きとか準備とか設定に時間がかかったので、
ブログが後回しになってしまってたのです。。。
とりあえず、当ブログの過去ログとIT関連サイトのRSSフィードが
メインになるかと思いますが、まだ作成途中なので補足先の
ブログなどは随時更新・追加していきます。
自分が昼休みに情報チェックするため、というのがいちばんの
作成意図ですので、手軽に情報を仕入れられるサイトに
していくつもりです。
そんな中、最近勉強しているAjax製のamazon検索機能を
Web解説サイトなどを参考に搭載してみました。
検索条件を入れると動的にHTMLを書き換えて
検索結果を画面に表示するようになってます。
Ajaxを用いたamazon商品検索
http://superse.jp/amajax.php
テキトーに条件を入力してもらえば使い方はわかるかな。
あとは画像をクリックしていくとご希望の商品にたどり着けます。
最近Ajaxが流行ってますけど、たしかに使い方によっては
面白いことがデキそうですね。
送信ボタンなどを押さず、画面をリフレッシュせずに
書き換えられるのはなかなか新鮮です。