SQLインジェクションとは何ですか?
SQL(Structured Query Language)インジェクションは、ほとんどの場合、データベース駆動型のWebサイトに対して試行される攻撃の一種です。 サイトを駆動するデータベースのテーブルに保存されているデータを破壊、変更、または明らかにすることにより、データ管理に干渉するために、サイトのSQLクエリに悪意のあるコードを挿入する試みです。 SQLは、データベースに格納されているデータを作成、更新、取得するために使用される標準のプログラミング言語です。
SQLインジェクション攻撃の危険性は非常に多く、それらが正常に実行されると非常に破壊的です。 クレジットカード番号、個人の医療記録、オンラインバンキングや電子メールなどのアカウントのユーザー名とパスワード、およびさまざまな種類の識別番号などの機密情報がサイバー犯罪者にさらされる可能性があります。 データの盗難は、おそらくSQLインジェクションを使用しようとする人の主な目標ですが、これまたはクロスサイトスクリプティングなどの他のタイプのコードインジェクション手法を使用する動機はそれだけではありません。 気に入らない情報を表示するWebサイトへの訪問者は、SQLインジェクション攻撃を試みて、サイトを無効にしたり、データを盗んだり、データを変更してサイトの背後にいる人々の任務を破壊したりする可能性があります。
時々、SQLインジェクション攻撃は、サイト所有者によってアカウントが禁止されている可能性のある不満の訪問者、サイトの人気をうらやむ、または彼または彼女が考えている誰かのオンラインビジネスを破壊しようとする不満のある訪問者によって試みられます敵になります。 SQLインジェクション攻撃を開始するには、明らかにSQLの知識が必要ですが、他のプログラミング言語と比較して、学習することは一般に非常に難しい言語とは見なされておらず、使用方法の基本的かつ堅実な理解だけで多くを達成できますそれ。 これは、Webサイトに対してSQLインジェクションを試みるのに必要なスキルを持っているインターネットをサーフィンする人がかなりいることを意味します。
Web開発者、特にバックエンドWeb開発を専門とする開発者は、プログラムするサイトがSQLインジェクションに対して安全であることを保証する責任があります。 このような重要なセキュリティを実現する方法はほとんど常に複数あり、それらの方法のほとんどはシンプルですが非常に効果的なソリューションと見なされています。 たとえば、開発者は、ハイパーテキストプリプロセッサ(PHP)言語でスクリプトを作成するときに、mysql_real_escape_string()関数または準備済みステートメントを使用できます。 セキュリティを設定する場合でも、サイト全体のパフォーマンスは無視できないため、攻撃を防ぐために選択する方法は慎重に検討する必要があります。