Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
как от нее оградиться? достаточно простой проверки на недопустимые символы в водимой строке?
если есть готовый код поделитесь??? (неохота на это отвлекаться...)
))
Вездеход
Отправлено: 26 Декабря, 2009 - 09:30:35
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
нельзя на такие вещи "не отвлекаться"....
иначе наберете косяков много.
все данные, которые вы получаете "из вне" - через куки, GET или POST надо проверять. иначе будут проблемы с верностью работы сайта или данными..
как последняя стадия - нужно проверять все функцией mysql_real_escape_string или аналогом mysql_escape_string
а перед этим ваши проверки должны быть, в зависимости от того, какие данные вы ждете от пользователя... но проверять нужно все получаемые данные!!!
например проверка на число, строку (мыло, логины) или тексты...
размеры (скока символов) и проверка не недопустимые символы..
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
Phantik
Отправлено: 26 Декабря, 2009 - 09:36:27
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Еще не лишним будет ограничить пользователя, под которым конектишься к базе, минимально необходимым набором прав.
bems
Отправлено: 26 Декабря, 2009 - 09:48:36
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Кхм, всем привет, давно пользуюсь вашим сайтом, решил хоть на форуме регнуться)
Честно говоря с недавних пор тоже начал волновать вопрос по поводу инъекций. С GET-числовыми запросами у мну никаких проблем нет, а вот со страницей регистрации очень опасаюсь. Кто нибудь скажет, достаточно ли обрабатывать данные с помощью mysql_real_escape_string?
Вездеход
Отправлено: 26 Декабря, 2009 - 11:47:51
Частый посетитель
Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008 Откуда: Россия
Помог: 0 раз(а)
bems пишет:
Честно говоря с недавних пор тоже начал волновать вопрос по поводу инъекций. С GET-числовыми запросами у мну никаких проблем нет, а вот со страницей регистрации очень опасаюсь. Кто нибудь скажет, достаточно ли обрабатывать данные с помощью mysql_real_escape_string?
читайте мой пост выше. если не поможет - можно еще раз... если уж и снова не поможет - поищите еще похожие темы... их было много.
Phantik пишет:
Еще не лишним будет ограничить пользователя, под которым конектишься к базе, минимально необходимым набором прав.
права, как таковые влияют на функционал. напрямую доступ к базе я нигде не делаю например... глупо и опасно имхо
----- о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
Мелкий
Отправлено: 26 Декабря, 2009 - 12:11:01
Активный участник
Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009 Откуда: Россия, Санкт-Петербург
Помог: 618 раз(а)
Вездеход пишет:
права, как таковые влияют на функционал. напрямую доступ к базе я нигде не делаю например... глупо и опасно имхо
Но и права полезно ограничивать, т.к. к субд доступ можно получить не только от вами написанного скрипта, и взломать можно не только скрипт, но и сам http-сервер, или любой другой сервис, смотрящий наружу. И вот тогда, чтобы не потерять базу, нужно ограничивать пользователя базы в правах, т.к. его логин и пароль - в скриптах, у которых права на чтение, зачастую, есть для всех.
----- PostgreSQL DBA
Hunter
Отправлено: 26 Декабря, 2009 - 13:27:38
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Вездеход
а нельзя ограничиься просто проверкой на недопустимые символы (именно как защита от инъекций) ??
Phantik
Отправлено: 26 Декабря, 2009 - 13:47:37
Посетитель
Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009
Помог: 0 раз(а)
Основная идея защиты от инъекций, это что бы в параметры запроса не попадал SQL - код.
А если бы и попадал то представлялся серверу как параметр - строка, а не часть SQL запроса.
Т.е. проверять надо что бы пользователь, например в поле
Name не вводил строки вида "44'; DROP MyTable;"
Так же никогда не выводить пользователю результаты функции mysql_error();
Hunter
Отправлено: 26 Декабря, 2009 - 15:07:05
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Phantik
вот про это я и спрашиваю, ведь в запросе всегда присутствуют определенные символы..просто запретить их ввод пользователю и все..
Champion
Отправлено: 26 Декабря, 2009 - 15:11:06
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Hunter пишет:
просто запретить их ввод пользователю и все..
А если пользователь хочет никнейм O'Konnor ? Не надо символы запрещать, просто через функции, которые тебе выше привели, прогоняй данные.
Hunter
Отправлено: 26 Декабря, 2009 - 15:28:50
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Champion
вот теперь осознал приемущество этих функций..я только с ними не совсем разобрался..результат возвращаемый функцией будет безопасной для скрипта строкой? я правильно понял?
Champion
Отправлено: 26 Декабря, 2009 - 15:39:10
Активный участник
Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008 Откуда: Москва
Помог: 57 раз(а)
Да. Все строковые вещи, которые ты вносишь в базу прогоняй через эти функции. Цифры достаточно просто обработать (int), intval()...
Hunter
Отправлено: 26 Декабря, 2009 - 16:00:17
Частый гость
Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009 Откуда: Блага
Помог: 0 раз(а)
Champion
спс)) все понял..
bems
Отправлено: 27 Декабря, 2009 - 15:03:29
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Дек. 2009
Помог: 0 раз(а)
Да, тож благодарю за консультацию) С числовыми данными пока так и делаю, а вот со string постоянно какое-то недоверие.
А ещё где-то я читал что якобы никогда не рассчитывайте на магические скобки, они не помогут. Неужели это правда?
valenok
Отправлено: 27 Декабря, 2009 - 15:23:18
Здесь могла бы быть ваша реклама
Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006 Откуда: Israel
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.