За последние 24 часа нас посетили 23911 программистов и 1641 робот. Сейчас ищут 860 программистов ...

Достаточная ли защита от sql инъекции

Тема в разделе "PHP для новичков", создана пользователем Рихард, 16 фев 2018.

  1. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    В общем с формы методом пост получаем тип данных и следующий этап обращение к базе.
    Хватает ли этой защиты перед обращением к базе.
    Код (Text):
    1. //Установка защиты от sql инъекций
    2. $firstname=$_POST['firstname'];
    3. $firstname=trim($firstname);//Защита от пробелов
    4. $firstname=mysql_real_escape_string($firstname);//Экранирование символов
    или еще функцию кодирования добавить
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.866
    Симпатии:
    753
    Адрес:
    Татарстан
    и самоуничтожения еще )
     
  3. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    не совсем понял, тоесть правильнее в одной строке все выполнить?
     
  4. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я ничего не эксейплю)) подготовленные запросы рулят)
     
  5. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    а какие "подготовленные запросы"?
    можно примерчик какой нить если не тяжело
     
  6. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
  7. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    https://php.ru/manual/pdo.prepare.html
    --- Добавлено ---
    PHP:
    1. $firstname=$_POST['firstname'];
    Кроме всего этого можно поставить проверку empty, разрешить вводить только определенные символы и их количество :)
     
    Рихард нравится это.
  8. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Боюсь опасных я пробелов,
    и переводов строк боюсь.
    А также страшных двоеточий
    и пунктуации всей прочей

    :)
    --- Добавлено ---
    По теме. Эта библиотека устарела 5 лет назад, сколько можно везде её пихать? В php 7 её вообще нету. Читайте посвежее литературу и документацию по языку. Про защиту от инъекций всё уже рассказали
     
  9. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    Вот я начинающий и изучаю PHP около месяца и сталкиваюсь с такой проблемой очередной раз:
    1. В любой ситуации когда код мой не работает или какая то ошибка в нем , мне предлагают решение проблемы в стиле ООП.
    2. Когда читаешь в интернете про ООП все твердят что полгода год надо в процедурном программировании практиковаться и не лезть в ООП.
    Вопрос:
    1. Когда нужно переходить на ооп?
     
  10. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Подожди еще пять минут и можно переходить
     
  11. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    а там же есть и процедурный синтаксис...

    переходить на ООП надо тогда когда надо))
    тут просто есть путаница...
    1. Использование классов и объектов это не обязательно ООП
    2. MVC это не обязательно ООП...

    просто классы позволяют удобно компоновать и вызывать методы для работы с определенной сущность... поэтому их удобнее использовать.. а тоже MVC позволяет сделать понятную структуру приложения прежде всего для себя))
    --- Добавлено ---
    а вообще ООП это концепция... я сам в этом вопросе плаваю..
     
    artoodetoo нравится это.
  12. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    Читал Дейва Скляра Разработка приложений PHP и Mysql ,но в середине книги оборвал чтение так как перестал понимать происходящее.

    А этот пример это методика написания из книги Head First вроде и в мануале на сайте про нее написано было (имею в виду эту функцию).
    Книга действительно 2010 года но она написана как бы для чайников.

    Планирую на днях дочитать ее и все таки перейти или на Люка Велинга Лора Томпсон или ООП Мет Зандстра
    --- Добавлено ---
    это серьезно сказано было?
     
  13. Алекс8

    Алекс8 Активный пользователь

    С нами с:
    18 май 2017
    Сообщения:
    1.730
    Симпатии:
    359
    я тут ничего не могу сказать)) я не читал эти книги)) до пхп у меня был небольшой опыт с другими языками...
    поэтому я приблизительно понимал что мне надо.. так что первым делом я узнал как пишется HelloWord... как работает вообще приложение на ПХП.. как работает веб-сервер... все очень схематично.. и узнал как передаются параметры от пользователя к приложению..
    а дальше для меня было проще.. все языки приблизительно одинаковые.. .условия, циклы... смотрел чужой код..
    так что теоретическая база у меня с пробелами)) но сейчас с удовольствием читаю теорию))
     
  14. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.598
    Симпатии:
    1.764
    Странно, вроде прилично книга написана. Советую возобновить и задавать здесь вопросы по прочитанному. Книга хорошая - от самых основ до использования фреймворков доводит.
    Тебе предложили использовать mysqli, а не ООП. mysqli поддерживает два синтаксиса - процедурный (почти такой же, как старая библиотека mysql) и объектный. Просто нет смысла учиться на устаревшей библиотеке.
    --- Добавлено ---
    Вот это очень хорошая книга, только я бы рекомендовал её, когда уже есть понимание основ синтаксиса. И алгоритмический опыт.
     
    Рихард нравится это.
  15. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Правильно ответили:
    Ведь всё зависит от поставленной цели!
    Зачем что-то конструировать на ООП когда это же самое можно написать в процедурном стиле и это будет и короче и быстрее работать.
     
  16. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    просто я начал писать небольшой код в плане соц сети с админкой и тп. вещами без использования классов и объектов и запутался в сценариях.В общем какая то каша пошла.
     
  17. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Как то "небольшой код" и "соц сети с админкой" ну совершенно противоположные вещи :) При этом говоря про mysql_real_escape_string() о которой говорится в мануале (Данное расширение устарело, начиная с версии PHP 5.5.0, и удалено в PHP 7.0.0. Используйте вместо него MySQLi или PDO_MySQL. )
    Я не считаю себя специалистом в PHP, всё писал только для своих нужд без ООП и баз данных, всё познавалось по мере необходимости, вот только недавно стал этим (ООП) интересоваться, т.к. захотелось перевести один давний код на базы данных и ООП.
     
  18. Рихард

    Рихард Новичок

    С нами с:
    13 янв 2018
    Сообщения:
    89
    Симпатии:
    6
    а какие программы писал без базы данных?
     
  19. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Да многое можно написать без полноценных баз данных, всё делал на простых текстовых файлах.
    --- Добавлено ---
    Также посмотри SQLite3
    Но это всё для не больших проектов.
     
  20. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    https://php.ru/manual/function.trim.html тебе в помощь :)
     
    Алекс8 и mkramer нравится это.
  21. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Интересный троллинг :) Но подход не верный, тут скорее нужно не удалять пробелы, а заполнять их т.е.
    str_replace()
    ;)
     
  22. AlexProg

    AlexProg Активный пользователь

    С нами с:
    13 май 2014
    Сообщения:
    320
    Симпатии:
    7
    Чем заполнять? )
     
  23. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Вы просто не поняли шутки:
    Функция trim(), которую предложил ради шутки Sergey_Tsarev удаляет пробелы вначале и в конце я в свою очередь подхватил шутку и написал, что пробелы нужно не удалять, а заполнять (заполнять именно знаниями), т.е. вот так
    PHP:
    1. str_replace("пробелы", "знания", "теоретическая база с пробелами");

    Вот такая вот шутка :)
     
    AlexProg нравится это.
  24. DJZuher

    DJZuher Новичок

    С нами с:
    7 янв 2017
    Сообщения:
    6
    Симпатии:
    1
    Что вы на парня накинулись то? Спецы блин )))
    Рихард - если не нужны в данных теги, то советую их ещё вырезать, и переведи строку в сущности.
    Если в ПОСТ принимаешь числовые данные для ковыряния таблицы БД, достаточно проверить на "целое" число.
    И вообще не понимаю возню с ООП, если нужен простой скрипт на три строчки... Это так, вообще по флуду в топике...
     
    Рихард нравится это.