SQL インジェクションの詳細

SQL インジェクションの詳細

1. SQL インジェクションとは何ですか?

SQL インジェクションは、入力パラメータに SQL コードを追加し、それを SQL サーバーに渡して解析および実行する攻撃方法です。

2. それはどのようにして起こったのですか?

ウェブ開発者は、すべての入力がサニタイズされていることを保証できない

攻撃者はSQLサーバーに送信された入力データを使用して実行可能なSQLコードを構築します。

データベースはセキュリティのために構成されていません

3. SQL の脆弱性を見つけるにはどうすればいいですか?

Webアプリケーション内のすべての入力ポイントを識別する

どのような種類のリクエストが例外をトリガーするかを理解していますか? (特殊文字 " または ')

サーバー応答の異常を検出する

4. SQL インジェクション攻撃を実行するにはどうすればいいですか?

デジタルインジェクション:

id=1 または 1=1 の場合、tablename から * を選択します。

文字列の挿入:

MySQL のコメント機能:

# と -- の後の文字はコメントアウトされているため、どのようなパスワードを入力しても正しく照会できます。画像の説明を入力するにはここをクリックしてください

5. SQL インジェクションを防ぐにはどうすればいいですか?

入力形式を厳密にチェックします: is_numeric(var)、tp5検証を検証し、正規表現を使用して文字列が[A-Za-z]の範囲内であるかどうかを確認します。

エスケープ: addslashes(str),

エスケープするためのmysqli_escape_string()関数

6.MySQLiのプリコンパイルメカニズム

パラメータ化されたバインディング

パラメータ化されたバインディングは、SQL インジェクションを防ぐもう 1 つの障壁です。 PHP MySQLi と PDO はどちらもこのような機能を提供します。たとえば、MySQLi では次のようにクエリを実行できます。

PDO はさらに便利です。たとえば、次のようになります。

以下もご興味があるかもしれません:
  • Java面接の質問分析:SQLインジェクションの判断と防止
  • SQL インジェクションの原則とソリューションコードの例
  • ibatis で SQL インジェクション問題を解決する
  • Win2003 サーバー アンチ SQL インジェクション アーティファクト - D シールド_IIS ファイアウォール
  • SQL インジェクション ツール_PowerNode Java アカデミー
  • SQL インジェクションの原理の紹介_PowerNode Java アカデミー
  • SQL インジェクションのある Web サイトを見つける方法 (必読)
  • 簡単なSQLインジェクションを共有する
  • Mybatis による SQL インジェクション防止の例
  • Hibernate使用時にSQLインジェクションを防ぐためのいくつかのソリューション
  • SQLインジェクションを防ぐ効果的な5つの方法のまとめ
  • SQLインジェクションにおけるファイルの読み取りと書き込み方法のまとめ

<<:  opensslを使用して無料の証明書を生成する方法

>>:  Node.js でメモリ効率の高いアプリケーションを作成する方法

推薦する

イベントバブリング、イベントキャプチャ、イベント委任に基づく詳細な説明

イベントバブリング、イベントキャプチャ、イベント委任JavaScript では、イベント委譲は非常に...

JavaScriptカスタムオブジェクトメソッドの概要

目次1. オブジェクトを使用してオブジェクトを作成する2. コンストラクタを使用してオブジェクトを作...

Linuxのテキスト処理コマンドsortの詳細な説明

テキストファイルの内容を並べ替える使用方法: ソート + オプション + ファイル名 (複数のファイ...

NodeJSのモジュール性に関する詳細な説明

目次1. はじめに2. 本文2.1 モジュールとは何ですか? 2.2 解決2.3、require.r...

HTML マーキー文字フラグメントのスクロール

その特性は次のとおりです。方向アクティブな字幕のスクロール方向を設定するコードは次のとおりです。 &...

CSS で TikTok テキスト揺れエフェクトを実装する例

日々の開発において、フロントエンドの学生はアニメーションやデザインについてよく議論します。デザイナー...

Vue3の組み込みコンポーネントであるTeleportの使い方を詳しく説明します

目次1. テレポートの使用2. モーダルダイアログコンポーネントを完成させる3. コンポーネントのレ...

React+Antdはテーブルの追加、削除、変更の例を実装します

目次テーブル/index.jsテーブル/モデル/index.jsテーブル/モデル/モジュール/bas...

Vueカスタム指示により、ポップアップウィンドウのドラッグ4辺ストレッチと対角ストレッチ効果を実現

導入同社の最近の Vue フロントエンド プロジェクトの要件: ポップアップ ウィンドウのドラッグ、...

docker イメージのプル速度が遅い問題の解決策

現在、Docker には中国向けの公式ミラーがあります。詳細については、https://www.do...

Linux ディスクデバイスと LVM 管理コマンドの詳細な例

序文Linux オペレーティング システムでは、デバイス ファイルは特別なタイプのファイルです。これ...

ソフトウェア テスト - MySQL (VI: データベース関数)

1.MySQL関数1. 数学関数PI() # 円周率 (pi) の値を返します。デフォルトの小数点...

MySQL マスタースレーブの原理と構成の詳細

MySQLのマスタースレーブ構成と原理、参考までに具体的な内容は以下のとおりです。 1. 環境の選択...

MySQL の innodb_flush_log_at_trx_commit と sync_binlog を区別する方法

2 つのパラメータ innodb_flush_log_at_trx_commit と sync_bi...