Загрузка...

SQL Injection Protection

Thread in Backend created by pSkateboard Mar 2, 2019. 575 views

  1. pSkateboard
    pSkateboard Topic starter Mar 2, 2019 Banned 56 Feb 6, 2018
    В этом гайде я расскажу, как защитить вашу БД от SQL инъекций. Гайд написал сам я, ни строки не скопировано.
    Использовать БД будем через PDO, приступим..

    0) Удалите все запросы и подключения, если у вас они были. Они вам больше не пригодятся. (У кого нет - пропускаем)

    1) Создаем файл config.php и вставляем этот код:
    Code
    function get_pdo () {
    $pdo = new PDO('mysql:host=localhost;dbname=lolzteam', "root", "");
    return $pdo;
    }

    function query($query, $array) {
    $q = get_pdo()->prepare($query);
    if ($array != null) $q->execute($array);
    else $q->execute();

    return $q->fetchAll();
    }
    Для подключения будем использовать PDO. Замените в этой строке на ваши данные
    Code
    mysql:host={ХОСТ};dbname={НАЗВАНИЕ БД}', "{ЮЗЕР БД}", "{ПАРОЛЬ}"
    2) Добавить инклуд, в начало php файла, чтобы функции из конфига работали
    Code
    include("config.php");
    3) Теперь перейдем к отправке запросов
    Пример SELECT запроса
    Code
    $res = query("SELECT `id` FROM `users` WHERE `login`=:login AND `password`=:password", array(
    "login" => $login,
    "password" => $password));
    Значение меняются на :param, а потом в массиве передаем ему само значение (хз, как объяснить), в переменной $login хранится логин юзера.
    Выводим результат:
    Code
    $res[0]['id']; // Вместо id, ваше значение
    Пример UPDATE запроса
    Code
    $res = query("UPDATE `users` SET `email`=:email WHERE `id`=:id", array(
    "email" => $email,
    "id" => $id));
    Пример INSERT запроса
    Code
    query("INSERT INTO `market` (`uid`, `name`) VALUES (:uid, :name)", array(
    "uid" => $res[0]['id'], //Из прошлого запроса хд
    "name" => $name));
    Защита вашей базы данных - важное дело, не стоит экономить на этом время, т.к. SQL инъекции хакеры проверяют в первую очередь.
    Удачного кодинга!
     
  2. pSkateboard
    pSkateboard Topic starter Mar 2, 2019 Banned 56 Feb 6, 2018
    А я о чем в гайде расписывал?:facepalm:
     
  3. pSkateboard
    pSkateboard Topic starter Mar 2, 2019 Banned 56 Feb 6, 2018
    Может быть ты дурачек, но все сначала учат обычные функции mysqli (я знаю много людей, кто именно так делает), например мне не рассказывали про PDO
     
  4. pSkateboard
    pSkateboard Topic starter Mar 2, 2019 Banned 56 Feb 6, 2018
    Я новичкам сделал.. Всё, стфу
     
  5. KillSeed
    Хопа, долго искал.
    Спасибо большое !!
     
  6. WiZARDHAX
    WiZARDHAX Mar 2, 2019 1 Aug 6, 2016
    спасибо за гайд
     
  7. NYSUR1
    NYSUR1 Mar 7, 2019 0 Feb 21, 2019
    Полезный гайд, надо будет попробовать
     
Loading...
Top