Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: sql инъекция

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): [1] 2 3 »   

> Без описания
Hunter
Отправлено: 26 Декабря, 2009 - 03:34:46
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




как от нее оградиться? достаточно простой проверки на недопустимые символы в водимой строке?
если есть готовый код поделитесь??? (неохота на это отвлекаться...)
))
 
 Top
Вездеход
Отправлено: 26 Декабря, 2009 - 09:30:35
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




нельзя на такие вещи "не отвлекаться"....
иначе наберете косяков много.

все данные, которые вы получаете "из вне" - через куки, GET или POST надо проверять. иначе будут проблемы с верностью работы сайта или данными..

как последняя стадия - нужно проверять все функцией mysql_real_escape_string или аналогом mysql_escape_string
а перед этим ваши проверки должны быть, в зависимости от того, какие данные вы ждете от пользователя... но проверять нужно все получаемые данные!!!
например проверка на число, строку (мыло, логины) или тексты...
размеры (скока символов) и проверка не недопустимые символы..

ну вот как то так =)

(Отредактировано автором: 26 Декабря, 2009 - 11:48:36)



-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Phantik
Отправлено: 26 Декабря, 2009 - 09:36:27
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Еще не лишним будет ограничить пользователя, под которым конектишься к базе, минимально необходимым набором прав.
 
 Top
bems
Отправлено: 26 Декабря, 2009 - 09:48:36
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Кхм, всем привет, давно пользуюсь вашим сайтом, решил хоть на форуме регнуться)

Честно говоря с недавних пор тоже начал волновать вопрос по поводу инъекций. С GET-числовыми запросами у мну никаких проблем нет, а вот со страницей регистрации очень опасаюсь. Кто нибудь скажет, достаточно ли обрабатывать данные с помощью mysql_real_escape_string?
 
 Top
Вездеход
Отправлено: 26 Декабря, 2009 - 11:47:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




bems пишет:
Честно говоря с недавних пор тоже начал волновать вопрос по поводу инъекций. С GET-числовыми запросами у мну никаких проблем нет, а вот со страницей регистрации очень опасаюсь. Кто нибудь скажет, достаточно ли обрабатывать данные с помощью mysql_real_escape_string?

читайте мой пост выше. если не поможет - можно еще раз... если уж и снова не поможет - поищите еще похожие темы... их было много.

Phantik пишет:
Еще не лишним будет ограничить пользователя, под которым конектишься к базе, минимально необходимым набором прав.

права, как таковые влияют на функционал. напрямую доступ к базе я нигде не делаю например... глупо и опасно имхо


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
Мелкий Супермодератор
Отправлено: 26 Декабря, 2009 - 12:11:01
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Вездеход пишет:
права, как таковые влияют на функционал. напрямую доступ к базе я нигде не делаю например... глупо и опасно имхо

Но и права полезно ограничивать, т.к. к субд доступ можно получить не только от вами написанного скрипта, и взломать можно не только скрипт, но и сам http-сервер, или любой другой сервис, смотрящий наружу. И вот тогда, чтобы не потерять базу, нужно ограничивать пользователя базы в правах, т.к. его логин и пароль - в скриптах, у которых права на чтение, зачастую, есть для всех.


-----
PostgreSQL DBA
 
 Top
Hunter
Отправлено: 26 Декабря, 2009 - 13:27:38
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Вездеход
а нельзя ограничиься просто проверкой на недопустимые символы (именно как защита от инъекций) ??
 
 Top
Phantik
Отправлено: 26 Декабря, 2009 - 13:47:37
Post Id


Посетитель


Покинул форум
Сообщений всего: 305
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




Основная идея защиты от инъекций, это что бы в параметры запроса не попадал SQL - код.
А если бы и попадал то представлялся серверу как параметр - строка, а не часть SQL запроса.
Т.е. проверять надо что бы пользователь, например в поле
Name не вводил строки вида "44'; DROP MyTable;"

Так же никогда не выводить пользователю результаты функции mysql_error();
 
 Top
Hunter
Отправлено: 26 Декабря, 2009 - 15:07:05
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Phantik
вот про это я и спрашиваю, ведь в запросе всегда присутствуют определенные символы..просто запретить их ввод пользователю и все..
 
 Top
Champion Супермодератор
Отправлено: 26 Декабря, 2009 - 15:11:06
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Hunter пишет:
просто запретить их ввод пользователю и все..
А если пользователь хочет никнейм O'Konnor ? Не надо символы запрещать, просто через функции, которые тебе выше привели, прогоняй данные.
 
 Top
Hunter
Отправлено: 26 Декабря, 2009 - 15:28:50
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Champion
вот теперь осознал приемущество этих функций..я только с ними не совсем разобрался..результат возвращаемый функцией будет безопасной для скрипта строкой? я правильно понял?
 
 Top
Champion Супермодератор
Отправлено: 26 Декабря, 2009 - 15:39:10
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Да. Все строковые вещи, которые ты вносишь в базу прогоняй через эти функции. Цифры достаточно просто обработать (int), intval()...
 
 Top
Hunter
Отправлено: 26 Декабря, 2009 - 16:00:17
Post Id



Частый гость


Покинул форум
Сообщений всего: 214
Дата рег-ции: Дек. 2009  
Откуда: Блага


Помог: 0 раз(а)




Champion
спс)) все понял..
 
 Top
bems
Отправлено: 27 Декабря, 2009 - 15:03:29
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Да, тож благодарю за консультацию) С числовыми данными пока так и делаю, а вот со string постоянно какое-то недоверие.
А ещё где-то я читал что якобы никогда не рассчитывайте на магические скобки, они не помогут. Неужели это правда?
 
 Top
valenok Модератор
Отправлено: 27 Декабря, 2009 - 15:23:18
Post Id



Здесь могла бы быть ваша реклама


Покинул форум
Сообщений всего: 4574
Дата рег-ции: Июль 2006  
Откуда: Israel


Помог: 3 раз(а)




Это правда.
И не скобки, а кавычки.


-----
Truly yours, Sasha.
 
My status
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB