PHP コードの Web サイトで SQL インジェクションの脆弱性攻撃を防ぐ方法についての提案を共有する
ハッカーは、SQL インジェクション攻撃を通じて Web サイトのデータベースにアクセスし、Web サイトのデータベース内のすべてのデータを取得することができ、SQL インジェクションを通じてデータベース内のデータを改ざんしたり、データベース内のデータを破壊したりする可能性があります。 Web 開発者は、この種のハッカー行為を嫌います。もちろん、SQL インジェクションの原理を理解し、コードを通じて Web サイトのデータベースを保護する方法を学ぶ必要もあります。今日は、PHP および MySQL データベースを例として使用して、SQL インジェクション攻撃について私が知っていること、いくつかの簡単な予防策、および SQL インジェクション攻撃を回避する方法に関するいくつかの提案を共有します。
SQL インジェクションとは何ですか?
SQL インジェクションとは、簡単に言うと、コードの脆弱性を利用して、Web サイトやアプリケーションのバックグラウンドで SQL データベースのデータを取得し、データベースにアクセスすることです。たとえば、ハッカーは Web サイト コードの脆弱性を悪用し、SQL インジェクションを使用して企業 Web サイトのバックエンド データベース内のすべてのデータ情報を取得する可能性があります。データベース管理者のログイン ユーザー名とパスワードを取得した後、ハッカーはデータベースの内容を自由に変更したり、データベースを削除したりすることができます。 SQL インジェクションは、Web サイトやアプリケーションのセキュリティをテストするためにも使用できます。 SQL を挿入する方法は数多くありますが、この記事では最も基本的な原則のみについて説明します。例として PHP と MySQL を使用します。この記事の例は非常に単純です。他の言語を使用する場合は、SQL コマンドに注目するだけで理解できます。
単純な SQL インジェクション攻撃ケース
すべての顧客データとその他の重要な情報を Web サイトのバックエンド データベースに保存する企業 Web サイトがあるとします。 Web サイトのログイン ページのコードにユーザー情報を読み取るコマンドが含まれている場合。
コードをコピー コードは次のとおりです:
$q = "SELECT `id` FROM `users` WHERE `username`= ' " .$_GET['username']. " ' AND `password`= ' " .$_GET['password']. " ' ";
?>
今度は、データベースを攻撃しようとするハッカーが、このログイン ページのユーザー名入力ボックスに次のコードを入力しようとします。
' ;
ログイン ボタンをクリックすると、このページにデータベース内のすべてのテーブルが表示されます。ここで次のコマンド行を使用すると:
'; DROP TABLE [テーブル名];
このようにして、テーブルを削除します。
もちろん、これは非常に単純な例にすぎません。実際の SQL インジェクション方法はこれよりもはるかに複雑で、ハッカーは喜んでコードを攻撃しようと多くの時間を費やします。 SQL インジェクション攻撃を自動的に継続的に試行できるソフトウェア プログラムがいくつかあります。 SQL インジェクション攻撃の原理を理解した後、SQL インジェクション攻撃を防ぐ方法を見てみましょう。
SQL インジェクションの防止 - mysql_real_escape_string() 関数を使用します。
データベース オペレーション コードでこの関数 mysql_real_escape_string() を使用して、引用符などのコード内の特殊文字を除外します。例:
コードをコピー コードは次のとおりです:
$q = "SELECT `? id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET['password'] ). " ' ";
?>
SQL インジェクションの防止 - mysql_query() 関数を使用すると、特に
mysql_query() は SQL コードの最初の行のみを実行し、後続の行は実行されません。実行されました。前の例で、ハッカーがコードを通じてバックグラウンドで複数の SQL コマンドを実行し、すべてのテーブルの名前を表示したことを思い出してください。したがって、mysql_query() 関数はさらなる保護を実現できます。今のコードをさらに進化させて、次のコードを取得します。
コードをコピーします コードは次のとおりです:
< ;?
//接続
$database = mysql_connect("localhost", "ユーザー名","パスワード");
//db 選択
mysql_select_db("database", $database); 🎜>$q = mysql_query("SELECT `id` FROM `users` WHERE `username`= ' " .mysql_real_escape_string( $_GET['username'] ). " ' AND `password`= ' " .mysql_real_escape_string( $_GET[ 'password'] ). " ' ", $database);
さらに、PHP コード内の入力値の長さを決定することもできます。入力された値を確認する機能です。したがって、ユーザー入力値が受け入れられる場合は、入力内容をフィルタリングしてチェックする必要があります。もちろん、意図的な防止を実現するために、最新の SQL インジェクション手法を学び理解することも非常に重要です。 WordPress などのプラットフォームベースの Web サイト システムを使用している場合は、必ず公式パッチを適用するか、適時に新しいバージョンにアップグレードしてください。何か間違っている場合や理解できない場合は、コメント欄にメッセージを残してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境
