Web アプリケーションを構築して、サービスとして公開する上で気をつけておかなければいけない事は外部からの不正なアクセスや悪意のある攻撃です。
第三者が脆弱性部分から悪意のあるプログラム群を侵入させて攻撃を仕掛けてきますと、その攻撃によって、企業は顧客情報などを盗まれてしまったり、Webサイトで公開されている情報を書き換えられたりします。
システムの脆弱性だけでなく、構築しているプログラムの脆弱性によって、悪意のあるプログラムが侵入し易くなりますので、その脆弱性を無くすような対策を施さなければいけません。
SQLインジェクションは、データベースを活用したWebアプリケーションにおいて、そのデータベースを扱う時に使用するSQLの処理が適切に出来ていない脆弱性を突いて、不正なSQL文を挿入する事で攻撃が出来るようにする攻撃方法の事です。
データベースにアクセスする事が出来ますと、データベースを不正に操作する事ができ、データを書き換えたり、消去したり、盗んだりといった事が行なえます。SQLインジェクションの原理は、入力した値がアプリケーションによって適切にエスケープしない事で起こります。
SQLインジェクションが起こらないようにする対策として効果的であるのは、プログラムを開発する上で、フォームなどから入力された値を適切なエスケープを使ってSQL文が実行されるように手直しする事です。
データベースソフトの設定次第で単一引用符2つでエスケープする方法以外にも、バックスラッシュを使ってエスケープさせる事も可能になります。
SQLインジェクションという攻撃を使ってデータの改竄などが行われないようにするには、SQL文をそのまま実行出来る状態で放置しない事が重要です。
SQL文が直接実行されず、プログラムによって適切に処理を判断出来る状況にする事で、データベースを活用したアプリケーションは安全に稼働させていく事が出来るでしょう。