mysql プリペアドステートメントのインジェクションを妨げる根本的な処理の問題について
phpcn_u5077
phpcn_u5077 2017-06-15 18:24:58
0
2
1761

PHP の PDO オブジェクトまたは STMT オブジェクトは、インジェクションを含む SQL ステートメントを実行します。
MYSQL ログを確認すると、2 番目の一重引用符のみがエスケープされていることがわかりました。
SELECT * FROM admin WHERE user = '123\' または 1 = 1 #'
C などの言語を使用して libmysql.dll を呼び出したネイティブ API ログは次のようになります。
select * from admin where user = X'313233'
処理方法はパラメーターを次のように変換します。 16 進数

これらはすべて前処理ですが、基礎となる処理に 2 つの異なる方法があるのはなぜですか?

前処理関数は、MYSQL のネイティブ API に基づいて PHP によってカプセル化されていますか?

Baidu のもう 1 つの声明は、PHP の前処理は疑似パラメータ クエリ (シミュレーション前処理) であるということですが、Baidu にはこの側面に関する紹介情報がありません。
この声明は本当ですか?

マスターが混乱を解消できることを願っています。改めてありがとうございます。

phpcn_u5077
phpcn_u5077

全員に返信(2)
美食控

phpマスターは皆最下層を研究しています

いいねを押す +0
  • 返事 私は達人ではありませんが、奇妙で興味深い物事の真相に迫るのが好きです。
    phpcn_u5077 著者 2017-06-16 07:31:17
shuffle

何を言っているのか分かりませんが、高級感があります

いいねを押す +0
  • 返事 。。。。。。
    phpcn_u5077 著者 2017-06-16 07:33:44
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート