【セキュリティ】SQLインジェクションとは【わかりやすく説明してみた】

セキュリティ

みなさんこんにちは、ちょいまけです。
今回は「SQLインジェクション」について説明します。

SQLインジェクション、Webサービスのサーバーサイドを制作したことがある方なら聞いたことはあるでしょう。正直必須となる知識です。

「SQLインジェクションってなんとなくわかるけど、説明できないかも…」という当時の僕のような方もいると思います。あるいは経験が不足で全く知らない方もいらっしゃる方も知れません。

そんな方に向けてSQLインジェクションとは何かをあっさりわかりやすく説明してみました。

SQLインジェクションは何か知りたい方、SQLインジェクションをあっさり復習したい方はご覧ください。

SQLインジェクションとは

SQLインジェクションとは不正なSQLを利用してWebページで利用しているデータベースを操作する攻撃手法または脆弱性のことです。SQLとはデータベースを操作するための言語です。

攻撃者は不正を発生させるSQLをWebページの外部から入力し、Webページが想定していないデータベース操作を発生させ、データの不正な閲覧、改竄など行います。

SQLインジェクションによる被害例

釣りビジョン

2019年1月25日に、株式会社釣りビジョンが不正アクセスによる被害を報告しました。

2018年10月から2019年1月までの間でSQLインジェクションによる攻撃により、63,656人の個人情報が流出しています。

釣りビジョン: リリースニュースより

対策

ユーザー側

特にありません。強いて言えばSQLインジェクションで捕まらないためにWebページの入力欄やURLでSQLを書かないようにしましょう。

開発側

SQLインジェクションを防ぐための対策はユーザーからの入力値をエスケープすることです。各プログラム言語で実装されているエスケープ機能を適切に利用しましょう。

さいごに: 教科書レベルのお話だけれど

この記事を書くにあたりSQLインジェクションの被害事例を調べていたのですが、2019年という記事執筆時点で見ると最近の時期に、SQLインジェクションのような割と知られている脆弱性に対する被害が出ていることに驚きました。

エンジニアなら当たり前に知っていて当然の内容ですが、知識として知っていても、実は対策できていないということも往々にしてあるということを示しているのだと思います。

SQLインジェクションはデータベースに直接アクセスされる分、大きな被害を生み出しやすい脆弱性です。

SQLインジェクションの危険性を改めて学び、新たに脆弱性を生み出さないよう気を付けて行きたい所存です。

今回は以上です。
最後まで読んでいただきまして、ありがとうございました。

コメント

タイトルとURLをコピーしました