0

同様の質問を見つけましたが、探していた答えが得られませんでした。このチュートリアルでは、WordPressが使用する最も重要な衛生機能について説明します。

PDOを使用してフォームデータをカスタムテーブルに保存しています。このデータの多くには、l'thisやのような名前が含まれていますCotélac & Blancé

電子メールとURLフィールドを脇に置いた場合、SQLインジェクションとクロスサイトスクリプティングを使用esc_attresc_htmlて熱心に使用するだけで十分ですか?

データをDBに保存する前にこれを使用する必要がありますか?それとも、画面に表示する直前ですか?

//From Wordpress
esc_html -> Escaping for HTML blocks
esc_attr -> Encodes the <, >, &, " and '

これは私が使用する典型的なクエリです:

$sql = " SELECT name
         FROM name
         WHERE user_name = :user_name
         AND fk_ID = :some_id ";

$stmt = $this->db->prepare($sql);
$stmt->bindParam(':user_name', $name, PDO::PARAM_STR);
$stmt->bindParam(':some_id', $some_id, PDO::PARAM_STR);
$stmt->execute();

$result = $stmt->fetchAll();
return $result;

// alternative (from another query)
$stmt = $this->db->prepare($sql);
$stmt->execute(array(':id'=> $id));
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

return $result;
4

1 に答える 1

1

あなたはwordpressにタグを付けたので、これらすべてを処理する$wpdbクラスがあることを付け加えるかもしれません。

はい。$wpdb->prepareを使用してそれを支援する必要があります。

コーデックスの例から:

$wpdb->query( $wpdb->prepare( 
    "
        INSERT INTO $wpdb->postmeta
        ( post_id, meta_key, meta_value )
        VALUES ( %d, %s, %s )
    ", 
        10, 
    $metakey, 
    $metavalue 
) );
于 2013-03-27T14:11:44.920 に答える