Загрузка...

Защита от SQL инъекций

Тема в разделе Backend создана пользователем pSkateboard 2 мар 2019. 552 просмотра

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

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

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