ФорумПрограммированиеPHP для идиотов → Как обезопасится от sql инъекции?

Как обезопасится от sql инъекции?

  • .snif

    Сообщения: 19 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2011 г. 12:14

    Всем привет. Вот кусок кода из index.php:

    $id_post = $_GET['post'];
    if (empty($id_post)) {
    show_short_posts();
    } else {
    show_full_posts($id_post);
    }

    функция show_full_posts:

    function show_full_posts ($post_id) {
    $query = @mysql_query("SELECT * FROM `posts` WHERE `id` = '".$post_id."'");
    if (!$query) {
    @header("Location: blank.php?m=3");
    } else {
    while ($row = @mysql_fetch_array($query)) {
    //ну тут что и как выводить
    }
    }

    собственно говоря как обезопасится от sql инъекции? ведь в ?post= можно подставить что угодно?
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2011 г. 12:17, спустя 2 минуты 30 секунд

    is_numeric
    mysql_real_escape_string
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2011 г. 12:17, спустя 30 секунд

    а что говорит гугл?
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • .snif

    Сообщения: 19 Репутация: N Группа: Кто попало

    Spritz 23 февраля 2011 г. 12:31, спустя 14 минут 4 секунды

    а что говорит гугл?

    ну я у него как бы не спрашивал) я просто думаю, может проце регулярку поставить что бы только цифры можно было вводить, но в регулярка вобще полный 0)
  • Frozzeg

    Сообщения: 5641 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2011 г. 12:34, спустя 2 минуты 17 секунд

    ну если int, то бонально проверить на тип int
    You can be anything you want to be. Just turn yourself into anything you think that you could ever be.
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2011 г. 12:41, спустя 6 минут 56 секунд

    гугли 'php type casting to integer', 'php mysql_real_escape_string', 'placeholders' 'prepared statements (PDO, MySQLi)'
    не всё полезно, что в swap полезло
  • master

    Сообщения: 3242 Репутация: N Группа: Джедаи

    Spritz 23 февраля 2011 г. 12:59, спустя 18 минут 48 секунд

    ну я у него как бы не спрашивал

    отлично, например
    не всё полезно, что в swap полезло
  • phpdude

    Сообщения: 26640 Репутация: N Группа: в ухо

    Spritz 24 февраля 2011 г. 0:47, спустя 11 часов 47 минут 24 секунды

    плейсхолдеры/ескейпинг/явное указание типа
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!