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

推薦する

Linux で so または実行可能プログラムの依存ライブラリを表示します

Linux で実行可能プログラムまたは so の依存ライブラリを表示します。 Linux の実行可能...

Tomcat の maxPostSize 設定に関する問題と注意事項

1. maxPostSize を設定する理由は何ですか? tomcat コンテナには送信データのサイ...

insert と select を組み合わせて、「データベース内のフィールドの最大値 + 1 を挿入する」メソッドを実装する

この記事はmysqlデータベースです質問 1 表 1 のデータを表 2 にインポートします。表 1 ...

Linux での MySQL マルチインスタンスの展開とインストール ガイド

MySQLマルチインスタンスとは簡単に言うと、MySQL マルチインスタンスとは、サーバー上で複数の...

Flex モバイルレイアウトにおけるシングルラインレイアウトとダブルラインレイアウトの違いと使い方

レイアウトにul>liを使用した単一行レイアウトを以下に示します。 <ul class=...

React refsの詳細な紹介

1. 何ですかRefs 、コンピューターでは Resilient File System (ReF...

MySQL無料インストールバージョンの設定チュートリアル

この記事では、参考までにMySQLの無料インストール構成チュートリアルを紹介します。具体的な内容は次...

CSSはコーナーカット+ボーダー+投影+コンテンツ背景色のグラデーション効果を実現します

CSS を使用するだけで、コーナーカット + ボーダー + 投影 + コンテンツの背景色のグラデーシ...

.html、.htm、.shtml、.shtm の違いと関連性について簡単に説明します。

ご存知のとおり、私たちが毎日閲覧する Web ページ、Web サイト、または Web ページには独自...

vue-cli 設定では Vuex の完全なプロセスレコードを使用します

目次序文インストールと使用方法モジュラー管理Vuex の状態永続性要約する序文Vue 開発では、ユー...

最新の JavaScript で非同期タスクを書く方法

序文この記事では、非同期 JavaScript の進化と、それがコードの記述方法にどのような変化をも...

VueはTodoListの例をカプセル化し、ブラウザのローカルキャッシュのアプリケーションを実装します。

この記事では主に、Vue で TodoList をカプセル化するケースと、ブラウザのローカル キャッ...

MySQL 外部キー制約の一般的な操作の例 [表示、追加、変更、削除]

この記事では、例を使用して、MySQL 外部キー制約の一般的な操作について説明します。ご参考までに、...

Vueルーティングルーターの詳細な説明

目次ルーティングプラグインをモジュール方式で使用するルートの使用宣言型ナビゲーションプログラムによる...

Vue で配列をクリアするいくつかの方法 (要約)

目次1. はじめに2. データを消去するいくつかの方法2.1 ref() の使用2.2 スライスの使...