この記事では、SQL と MYSQL の比較を通じて、SQL インジェクションに関する知識ポイントを詳細に分析し、SQL インジェクションの原理と SQL インジェクションを防ぐ方法について説明します。
1. SQL インジェクションとは何ですか?
SQL インジェクションは、入力パラメーターに SQL コードを追加し、それを解析および実行するために SQL サーバーに渡す攻撃手法です
2 どうやって起こったのですか?
Web 開発者は、すべての入力がフィルタリングされていることを保証できません
攻撃者は SQL サーバーに送信された入力データを使用して、実行可能な SQL コードを構築します
データベースには対応するセキュリティ構成がありません
3. SQL を見つける方法脆弱性?
Web アプリケーションのすべての入力ポイントを特定します
どのタイプのリクエストが例外をトリガーするかを理解していますか? (特殊文字 " または ')
サーバー応答の例外を検出する
4. SQL インジェクション攻撃を実行する方法
数値インジェクション:
Select * from tablename where id=1 or 1=1;
Character文字列インジェクション:
Mysql のコメント機能:
# と - は、どのようなパスワードを入力してもコメントアウトされます。ここをクリックして画像の説明を入力してください。 SQL インジェクション?
入力形式を厳密にチェックしてください: is_numeric(var)、tp5 の検証、通常の文字列インジェクションを使用して [A-Za-z] の間にあるかどうかを確認してください
Escape:addslashes(str) 、mysqli_escape_stringエスケープするための関数6. MySQLi のプリコンパイル メカニズム
パラメータ化されたバインディングは、SQL インジェクションを防ぐもう 1 つの障壁です。たとえば、MySQLi はそのような関数を提供します。次のようなクエリ:
PDO は、次のようにさらに便利です:
関連する推奨事項:
Web サイトへの SQL インジェクション方法PHP はシンプルで効率的 回避策の共有方法SQLインジェクション
以上がSQL インジェクションと防止の詳細については、こちらをご覧ください。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。