個人情報漏洩関係の問題で、今でも一つ、大きな問題として悩まされているのが『SQLインジェクション』。
何らかの形でシステムを運用する方は、聞いた事もあるのではないでしょうか。
でも、唐突に『SQLインジェクション』なんて言われても困っちゃいますよね。
システムを運用していたりすると、とあるお偉方からこう言われたりする訳ですよ。
「うちってSQLインジェクション対策大丈夫なの?」
まあ実際にこんな事を聞かれるかどうかはさて置いて、こんな形で唐突に『SQLインジェクション対策』なんて言われても、まずそれが何だよって話で。
しかも、調べるとこんな事が書いてあったりする。
| google検索とwikipediaより。丁寧で良い説明です。専門的なのはwikipediaなんだから仕方ない。 |
不備を意図的に利用し、想定しないSQL文……? SQLってなんだよ。
そう思った方も多いのではないでしょうか。
こうなると、もはや泥沼です。
SQLってなんだよ!!
さて、これはインターネット上に存在する色々なサイトに当てはまる事なのですが。例えば、お買い物サイトとかありますよね? 利用者はIDとパスワードを取得して、ログインする。
そうすると、『ようこそ○○さん』なんて言葉が表示されたりして、お買い物が出来るようになるわけです。
ところで、あのユーザIDとかパスワードみたいな情報って、どこで管理しているんでしょうね?
例えばお買い物サイトなんかだと、商品の情報なんかはどうやって管理しているんだろう?
ここで、『データベース』という単語が登場する訳なんですね。
データベースというのは、お買い物サイトが置かれているコンピュータに入っているプログラムです。これを使って、様々な情報……例えば、顧客情報や商品情報……なんかを管理している訳なんですよ。
そして、最も重要なのは、この『データベース』。まあ種類は幾つかあるんですけど、どこのサイトでも動かし方は殆ど同じだったりするんですよね。
コマンドを入力して、情報を入れたり出したりします。たとえば検索は『Select』という単語を使います。情報の登録は『Insert』。更新は『Update』。言葉通りで、簡単ですよね。
そして、この出し入れするコマンドのことをSQLと呼ぶんです。そういうものだったのですね。
SQLインジェクションとは……
さて、この『SQL』と呼ばれるコマンドについてなんですが、例えば『Selectほにゃらら』なんて入力したりすると、簡単に情報が表形式で出力されるという、なんとも便利なものです。このようにですね。Excelみたいな表が突然出て来て、しかも中身は日本語で読めたりする訳なんです。
正直、めちゃくちゃ簡単です。コマンドさえ覚えてしまえば、誰にでも使えてしまうくらいに。
こんなに簡単だと、なんだか色々できちゃいそうですよね。
それが問題だったんですよ。
例えば、先程のお買い物サイトの例で言うと、ログイン画面。
ログイン画面って、大体ユーザIDとパスワードを入力する欄がありますよね。
そして、『ログイン』ボタンを押すと入る事ができる。
このパスワード入力欄なんかに、悪い人達は埋め込む訳なんですよ。
とても簡単で、やりたい放題できてしまうSQL文とやらを。
そうすると、不正に個人情報や商品情報なんかが盗めてしまう、という訳なんです。これがSQLインジェクション。
こんな簡単な事を、どうして対策していないのかって? いやいや、一つのページなら良いかもしれないですけど、WEBサイトなんて山程ページがあるんですよ。相手がどんなコマンドを入れて来るか分からないのに、対策する事って結構大変なんですよ。
こうして、不正に情報が盗まれてしまったのですね。
対策はどうする?
最近で言うと、システムのバージョンを上げたりする事で、問題が防げるようにもなっているそうです。しかし、やはり完全には無理なので、それぞれのサイトでエンジニアさんが頑張っているとか、いないとか。
同じような手口では、クロスサイトスクリプティングなんていう単語もあって。こちらはメールフォームなどにプログラムを仕込んで、ブラウザで保存されるデータなんかを抜き出したりできるそうです。
実に色々な抜け道があるという事ですね。
しかし、私はこの個人情報漏洩そのものの問題より、やれSQLインジェクションだのクロスサイトスクリプティングだのと専門用語を使って、何も知らない一般の人を困らせるだけではないかと思える情報の広め方をする世間の風潮に、あまり賛同できませんよ。ええ。
確かに説明が難しいという問題は一つありますが、もっと色々なジャンルの人達に理解されるような文章を書くというですね。
努力はですね。
そう。最終的に駄目でも仕方ないのだから、せめて、努力だけでもして頂きたいと思う限りでございます。
専門用語を並べ立ててドヤ顔しているようなシステムエンジニアなんて、私はいちエンジニアとして許せませんよ。
伝わらない文章では、コミュニケーションとして意味を成さないんですよ。
そこの所がもう少し、色々な所で改善されると良いな、と思うのですけどねえ。
なかなか、難しい所です。