Задавайте вопросы

Задавайте вопросы и получайте ответы от нашего сообщества

Отвечайте

Отвечайте на вопросы и станьте экспертом по своей теме

Свяжитесь с администрацией

Наши специалисты готовы ответить на ваши вопросы

[Мануал] Защита от инъекций

  • Автор темы impuLse #IT
  • Дата начала
  • Ответы 2
  • Просмотры 1 тыс.
  • Watchers 0

Информация о теме

О теме Здравствуйте, вы читаете тему Защита от инъекций созданную в в разделе mySQL пользователем impuLse #IT. Эта тема была просмотрена 1 434 раз(а), получила 2 комментариев и 0 очки реакции...
Название категории mySQL
Название темы Защита от инъекций
Автор темы impuLse #IT
Дата начала
Ответы
Просмотры
Количество реакций
Последнее сообщение Fibonacci

impuLse #IT

Администратор
Команда форума
Регистрация
12.03.2015
Сообщения
899
Реакции
446
Баллы
35
Лучшие ответы
0
  • Автор темы
  • Администратор
  • #1
Защита от инъекций:
Я стал замечать что всё больше и больше пользователей стараются изучить MySQL но они не понимают, что их ожидает
И что им предстоит узнать. Часто встречался с такими людьми которые задавались вопросом как же защитится от
MySQL инъекций? Разные пользователи придумывают разные варианты и уверенно себе внушают что это их защитит от инъекций.

Часто встречал такие методы защиты:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!


Тем самым некоторые пользователи уверенно думают, что они тем самым защищают себя от MySQL инъекций

Запомните раз и навсегда static отличается от new тем, что static создаётся 1 раз в памяти и остаётся там до завершения программы
А new создаётся каждый раз при вызове функции и очищается по её окончании. Так что не рекомендую использовать static это ничем не поможет.


Так какие же есть способы защиты?
Есть несколько способов защиты может я знаю не все но расскажу о тех которые мне извесны:


mysql_format:

Позволяет форматировать строки, которые можно смело использовать в запросе.

Параметры:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
Handle Соединение которое вы используете (Переменная = mysql_connect)
output[] Строка куда будет выводится результат.
format[] Само форматирование
{Float,_}:... Неопределённое количество аргументов(параметров)

Эта функция не возвращает никакого значения!

Параметры форматирования
%e Вставляет строку которую надо проверить(string %s)
%s Вставляет строку в формат(String)
%f Вставляет значение с точкой(Float)
%i, %d Вставляет целое значение числа(Integer)

Правильное использование:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
От меня:
Так же замечал, что пользователи очень боятся этой функции так как про неё пускают слухи, что она багнутая
Но на самом деле это не так функция часто вызывает крэш мода в тех случаях когда её используют в ненужных
Случаях то есть когда вы не используете в форматировании %e или эта строка имеет русские символы
В таких случаях мод крэшится. И не опытные скриптеры в случае своей неудачи распускают такие слухи.
Но если же вы так её боитесь что вам страшно спать то пожалуйста, используйте mysql_real_escape_string



mysql_real_escape_string:
Используйте эту функцию если вы хотите проверить строку на запрещенные символы
Важно:
Всегда используйте эту функцию если вы не используете mysql_format!
Иначе вы можете быть жертвой инъекции.

Параметры:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
const source[] Строка которая будет сканирована
destination[][] Строка куда будет выведен результат
Handle[] Соединение которое вы используете (Переменная = mysql_connect)
Эта функция возвращает количество сканированных символов!

Правильное использование:
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
От меня:
Как по мне удобнее и проще использовать mysql_format
И ещё по меньше слушайте других а если всё же послушали то лучше удостоверится


Автор: Kazon
 

impuLse #IT

Администратор
Команда форума
Регистрация
12.03.2015
Сообщения
899
Реакции
446
Баллы
35
Лучшие ответы
0
  • Автор темы
  • Администратор
  • #2
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
если ставить так то почему то выдаст ошибку
Код:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
я думаю нужно после query ставить еще и sizeof query, как в обычном format

может я ошибаюсь...
Да
mysql_format(connectionHandle, output[], len, format[], {Float,_}:...);
 

Fibonacci

Математический гений
Регистрация
04.07.2015
Сообщения
24
Реакции
9
Баллы
10
Лучшие ответы
0
PHP:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
если ставить так то почему то выдаст ошибку
Код:
Пожалуйста, Вход или Регистрация для просмотра содержания кодов!
я думаю нужно после query ставить еще и sizeof query, как в обычном format

может я ошибаюсь...
Неужели так сложно посмотреть документацию к плагину, чтобы понять в чём конкретно заключается ошибка.
Включайте мозг, товарищи.
 
Последнее редактирование:
Верх Низ