質問: $value->ID; $wpdb->update($wpdb->posts, array( 'カラム名1' => 値1, 'カラム名2' => 値2 ), array( 'ID' => $post_id ) ); ``` 特にエラーなどもなく、作成したプラグイン自体は正常に動作はしているのですが、 wordpress.orgの公式にプラグインをアップの申請をした際に、 wordpress.orgからの返答で、以下のような内容が英語できました。 (申し訳ないですが英語ができないため、返答をgoogle翻訳した結果になります。) 「##安全でないSQLコール データベース呼び出しを行うときには、SQLインジェクションの脆弱性からコードを保護するために非常に重要です。あなたはそれらを保護するためのクエリで()の準備使用するようにコードを更新する必要があります。 」 いっしょに、参考のURLも記載されていたのですが、リンク先がいずれも英語のため、 よく理解できずじまいの状態です。 原文は以下です。 > > 引用テキスト > > > Unsafe SQL calls > ----------------- > > > When making database calls, it's highly important to protect > your code from SQL injection vulnerabilities. You need to > > update your code to use prepare() with your queries to protect > them. > > > Please review the following: > > > * http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries> _Against_SQL_Injection_Attacks > > * http://codex.wordpress.org/Data_Validation#Database > > * http://make.wordpress.org/core/2012/12/12/php-warning-> missing-argument-2-for-wpdb-prepare/ > > * http://ottopress.com/2013/better-know-a-vulnerability-sql-> injection/ > > > セキュリティ的な問題があるということはなんとなくわかったのですが、 結果的にどのような形にしたら良いのかアドバイス、ヒント等ご教授いただければ幸いです。 よろしくお願いいたします。 追記:情報が不足していてすみませんでした。
回答: > > You need to update your code to use prepare() with your queries to protect them. > > > とあるとおり、prepare関数を使ってください。 また、WordPressのプラグイン開発、セキュリティに関する情報は、日本語のものもたくさんあるので、最低限ひととおり目を通してください。 **参考URL例** * *