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 でメモリ効率の高いアプリケーションを作成する方法

推薦する

MySQL メモリテーブルと一時テーブルの使用方法の詳細な説明

MySQL メモリ テーブルと一時テーブルの使用メモリテーブル: セッション 1 $ mysql -...

webkit-box-reflect を巧みに使用してさまざまな動的効果を実現する (要約)

かなり前の記事で、 -webkit-box-reflectプロパティについて説明しました。リフレクシ...

vue.js パッケージ化プロジェクトの後の空白ページの解決策

Vueに触れたばかりのパートナーの多くは、開発環境ではVueプロジェクトは正常であるが、パッケージ化...

nginxリバースプロキシを使用するときに長時間接続を維持する方法

・【シーン説明】 HTTP1.1 以降、HTTP プロトコルは永続的な接続 (長い接続とも呼ばれます...

MySQL エラー「すべての派生テーブルには独自のエイリアスが必要です」の解決方法

MySQL は、マルチテーブルクエリを実行するときにエラーを報告します。 [SQL] SELECT ...

プロキシはVue3データの双方向バインディングの原理を実現します

目次1. proxy と Object.defineProperty の利点2. プロキシ監視オブジ...

クラスタrpmを使用してMySQLをインストールするための詳細な手順

MySQLデータベースをインストールするa) MySQL ソースインストールパッケージをダウンロード...

Win10 は Tsinghua ソースを使用して pytorch-GPU バージョンをすばやくインストールします (推奨)

Cudaがインストールされているかどうかを確認してくださいアナコンダプロンプトに入力nvcc -V...

JSオブジェクトの走査順序の詳細な説明

JavaScript ではオブジェクトを走査する順序は固定されていないと聞いたことがある人もいるかも...

サイト全体を灰色にするCSSコードのまとめ

国務院は本日、新型コロナウイルス感染症との闘いで殉教した方々と犠牲者に対し、全国各民族人民の深い哀悼...

5つのCSSスクロール天井実装方法の比較(パフォーマンス向上版)

改訂版のプレビューこの記事は 3 日前に書かれたものです。先輩の同僚から改訂の提案をいくつかいただき...

タブ切り替え効果を実現するJavaScript

この記事では、タブ切り替え効果を実現するためのJavaScriptの具体的なコードを参考までに紹介し...

フロントエンドのパフォーマンス最適化 - フロントエンドエンジニアが話し合うべき問題点

はじめに<br />前回の記事「私の CSS アーキテクチャ コンセプト」では、公園で友...

Docker で Jenkins サービスを構築する例

画像をプルする root@EricZhou-MateBookProX: docker pull je...