WPDB準備-%のような-プレースホルダー?


9

LIKEステートメントのこれらの{xxx...}プレースホルダーは%正常ですか?もしそうなら、それらはいつに変換され%ますか?

SHELL
wp> global $wpdb;
wp> $q = "%s";
=> string(2) "%s"
wp> $pq = $wpdb->prepare($q, '%hi%');
=> string(136) "'{6e039dc0b074a5ff6828a070d0c24708d132341f32dff55a053f1410beabaacd}hi{6e039dc0b074a5ff6828a070d0c24708d132341f32dff55a053f1410beabaacd}'"

回答:


12

はい、正常です。これらは、SQLインジェクションの脆弱性を修正するために4.8.3で追加されました。

あなたはこの出来事のための技術的な理由を説明した記事読むことができ、ここで、変更のためのチケットこちらを

プレースホルダー文字は$wpdb->prepare()$wpdb->add_placeholder_escape()関数の最後の行のランダムな文字に置き換えられます$wpdb->placeholder_escape()。関数は、内部的に呼び出します。

これらのプレースホルダーは、フィルターとしてフックに追加された関数$wpdb->query()によって削除されます。$wpdb->remove_placeholder_escape()query

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.