Как предотвратить SQL-инъекцию в Wordpress?

в настоящее время я использую следующий запрос для получения значений в mysql с помощью php:

код работает, но теперь я беспокоюсь о SQL-инъекции.

Как предотвратить SQL-инъекцию?

<?php include_once("wp-config.php");
@$gameid = $_GET['gameid'];

global $wpdb;
$fivesdrafts = $wpdb->get_results( 
    "
    SELECT ID
    FROM $wpdb->posts
    WHERE  ID = ".$gameid." 

    "
);
?>

это безопасно?

<?php include_once("wp-config.php");
@$gameid = mysql_real_escape_string($_GET['gameid']);

global $wpdb;
$fivesdrafts = $wpdb->get_results(
$wpdb->prepare(
    "
    SELECT ID
    FROM $wpdb->posts
    WHERE  ID = %d", ".$gameid.")
);
?>

1 ответов


С WordPress Codex по защите запросов от атак SQL-инъекций:

<?php $sql = $wpdb->prepare( 'query' , value_parameter[, value_parameter ... ] ); ?>

Если вы прокрутите вниз немного дальше, есть примеры.

вы также должны прочитать проверка базы данных docs для более тщательного обзора SQL escaping в WordPress.