Простая функция PHP безопасна от внедрения SQL?

У меня есть простая процедура, которая удаляет строку из базы данных SQL ..

<?php
global $wpdb, user_ID;
$tmp_mid = $_GET['mid'];
if (!empty($tmp_mid))
{
$id_check = $wpdb->get_var($wpdb->prepare("SELECT message_to_user_ID FROM " . $wpdb->base_prefix . "messages WHERE message_ID = %d", $tmp_mid));
if ( $id_check == $user_ID )
{
$wpdb->query( $wpdb->prepare("DELETE FROM " . $wpdb->base_prefix . "messages WHERE message_ID = %d", $tmp_mid ));
}
}
?>

Я хочу убедиться, что строка может быть удалена только если $ user_id соответствует $ tmp_mid из ряда Кажется, что все работает правильно, но уязвима ли эта процедура для SQL-инъекций?

Нужно ли что-то делать для этого?

1

Решение

Ваш код не уязвим для SQL-Injection,

редактировать: Как отметил DCoder, вы в безопасности от sql-injection потому что этот метод wp работает, наконец, mysqli_real_escape_string() Функция, где ваш вход санирован правильно! Тем не менее, вы не используете подготовленные заявления, но это нормально.

3

Другие решения

Используйте mysql_real_escape_string.

$ tmp_mid = mysql_real_escape_string ($ _ GET [‘mid’]);

Если $ tmp_mid может быть только целым числом, вы можете удалить все нечисловые числа из этой переменной.

Вы не можете полностью полагаться на эту функцию все время, хотя для всех ситуаций.

0

По вопросам рекламы [email protected]