私はこれに関するいくつかのトピックを読みました、そして、異なる人々はベストプラクティスに関して異なる見解を持っています。
WordPressに関して、どのようにして最も安全な方法でデータベースにデータを書き込むのですか?
これは私が今使っているインサートの1つです。
$result = $wpdb->insert(
$table_name ,
array(
'arena' => $galleryData['arena'],
'year' => substr( $galleryData['season'], 2 ),
'copyright' => $galleryData['copyright'],
'description' => $galleryData['description'],
'path' => $galleryData['path'],
'fk_brand_id' => $galleryData['brand']
),
array( '%s', '%d', '%s', '%s', '%s', '%d' )
);
データを挿入するもう1つの方法はこれを行うことです。
$sanitized_sql = $wpdb->prepare( "
INSERT INTO my_plugin_table
SET
field1 = %1$d,
field2 = %2$s,
field3 = %3$s’,
32,
'Aaron Brazell',
'Washington, D.C'
" );
$wpdb->query( $sanitized_sql );
それでも wp_kses()
または mysql_real_escape_string()
を使用してデータをサニタイズする必要がありますか?
データベースにデータを安全に書き込むにはどの方法が良いかについて混乱しています。 Stack Overflowで役に立つ答えを見つけました 。
それでは、入力前にデータをサニタイズするべきですか、それともサニタイズしないべきですか?
消毒は既に行われていません。 mysql_real_escape_string が実行されたので、入力でHTMLをフィルタリングするのは悪い形式と考えられています。私は個人的にはちょっとした出力違反でそれをすることはDRYに違反すると思います。あなたがWordPressでやったことがあるならば、私はどこか他でどこかでそれを再びするであろうと非常に疑っています。
また、wpdb :: insertは基本的にはwpdb :: prepareのラッパーです。
安全にデータを格納する は、 安全なデータ とは異なることに注意してください。たとえば、JavaScriptコードはデータベースセキュリティの観点からはまったく無害ですが、フロントエンドの観点からは悪夢です。
単一の包括的なアプローチはありません、それが WordPressに大量の関連機能がある である理由です。
あなたは考慮する必要があります: