Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2015, 08:36   #1
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
Вопрос защита MySQL

Доброго времени суток !

Сильно не пинайте ... догадываюсь что тема уже не раз обсуждалась НО все же не как не догнать что к чему ... прошу помочь разобраться .

Я пишу свой сайт он у меня первый я на нем тренируюсь практикуюсь и в ближайшее время хочу его выложить в мир всемирной паутины но вопрос не в этом .

Подскажите есть какие либо защиты от SQL запросов которые нужно внедрить для защиты сайта ... на подобии защиты от html кода " htmlspecialchars " .
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 25.03.2015, 10:31   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну защита конечно есть, но она подбирается основываясь на механике самого портала.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2015, 08:33   #3
s88s
Форумчанин
 
Регистрация: 02.01.2014
Сообщений: 369
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну защита конечно есть, но она подбирается основываясь на механике самого портала.
Если не сложно можно по подробней ...
"Я не волшебник, я только учусь"
s88s вне форума Ответить с цитированием
Старый 26.03.2015, 17:48   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Подробнее? Ну это тебе нужно почитать про SQL иньекции.
Как недопустить дописывания к параметрам шеллкода.
Ну например, у тебя есть запрос
Код:
"select * from Юзерс where user="+GET["username"];
Ну и предположим что в портале есть некое текстовое поле username, в котором ты вводишь логин, что потом подставляется в запрос
В результате я могу в поле написать строку следующего содержимого:
'mylogin' and 1=1
Поскольку запрос не экранирован он будет выполнен в таком виде:
Код:
select * from Юзерс where user='mylogin' and 1=1
Т.е. взломщик получит тупо всю таблицу со всеми данными, а не только данными по одному пользователю.
Поэтому параметры, подставляемые в запросы рекомендуется экранировать, параметризировать, а не составлять запрос в виде строк конкатенацией с приходящими данными, и проверять регулярными выражениями что именно приходит для подстановки в запрос.
Это на пальцах так сразу не обьяснишь, тут целая наука.
Почитай для начала про параметризацию запроса, это уже будет неплохая защита.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2015, 18:58   #5
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

ничего он тут не получит, т.к. плохой взломщик :B
lomastr_ вне форума Ответить с цитированием
Старый 26.03.2015, 19:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ничего он тут не получит
Все получится. Сам так делал. И потом это просто упрощенный до нельзя пример запроса чтоб ТС понял о чем идет речь. На самом деле все посложнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2015, 19:16   #7
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

если бы он тут or вместо and, тогда другое дело
lomastr_ вне форума Ответить с цитированием
Старый 26.03.2015, 19:25   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Еще раз для любителей придраться - это пример
Всего лишь обычный пример, показывающий что именно нужно изучать. Механизм SQL взлома гораздо сложнее.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2015, 20:06   #9
lomastr_
Форумчанин
 
Регистрация: 16.01.2015
Сообщений: 672
По умолчанию

какой смысл в примере который не показывает ничего?
ваш запрос вернет не более 1 записи, так и без добавки он так работает, вот уж взломали так взломали
lomastr_ вне форума Ответить с цитированием
Старый 26.03.2015, 20:38   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
select * from Юзерс where user='mylogin' or 1=1
Легче стало?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Защита программы от НСД. Защита путем шифрования части программы на флеш-диске или флешке. Alina300788 Помощь студентам 9 10.06.2014 19:21
Delphi & MySQL: Защита данных, Безопасность andrey.vadimovich БД в Delphi 6 31.08.2012 13:33
Windows+Apache+PHP+MySQL: не работает расширение MySQL. Пепел Феникса Софт 10 15.04.2012 14:10