Безопасен ли данный код с точки зрения SQL инъекции, в интернете не смог найти однозначного ответа, один пишут что да, другие нет. Хотелось бы услышать ваши комментарии по поводу уязвимости (если она есть напишите где именно слабое место), пожалуйста не пишите про использование PDO, интересует именно то, допускает ли такое регулярное выражения SQL инъекцию, спасибо.
$login = $_POST['login'];
if (!preg_match('/^[A-z0-9]{5,10}$/', $login)) {
exit('login invalid');
}
mysqli_query($data_base, "SELECT `name` FROM `users` WHERE `login` = '$login'");
Приведенный Вами код АБСОЛЮТНО безопасен от SQL иньекций по причине того, что SQL отсутствует.
Если приведете коды SQL - уточню ответ
Если Вы имеете в виду комментированный код - то ДА, после фильтра на регулярку SQL иньекция невозможна
Ну Вы меня троллите... Изменили вопрос и ответ - не в струю...
Увы, это типичная ситуация для этого сайта, когда на вопрос одного дурака кидаются отвечать два других, и в итоге получается чудовищная галиматья.
Разумеется, на регулярки в защите от инъекций полагаться нельзя.
Сам вопрос - это детский лепет, "Маааааам, можно я руки не буду мыть, я же на улице не быыыыл!". Сама идея торговаться на предмет "нужно ли мыть руки" - это уже красный сигнал, обсуждать тут в принципе нечего.
Но куда хуже то действие, которое он произведет оставаясь в сети: столь же неумные читатели осилят только два действия - "защищают ли регулярки от инъекций" и положительный принятый ответ. И очередная ересь начнет гулять по сети, как будто в несчастном языке РНР их и так мало.
Данный вопрос следует удалить, как неверно сформулированный и имеющий потенциально опасные последствия.
Функция mysqli_real_escape_string
экранирует символы: NUL (ASCII 0), \n, \r, \, ', ", и Control-Z. Только эти символы и никакие другие могут вам навредить, в том числе являясь частью SQL-инъекции. Если ваша регулярка эти символы не пропускает, значит их нет, экранировать нечего, и SQL-инъекция в принципе невозможна.
UPDATE: При условии если строка без спецсимволов не выходит за пределы кавычек!
Источник: http://php.net/manual/ru/mysqli.real-escape-string.php
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пользуюсь данным помощником https://githubcom/akalongman/php-telegram-bot#credits, подскажите где настроить приветственное сообщение и как добавлять новые команды?