Защищенность коннекта к базе данных

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 17:03

У меня есть коннект к базе данных, выполняется запрос, все дела, но все написано в скрипте
Синтаксис:
Используется csharp
string source ="Server=localhost; database=Test; uid=sa; pwd=123";
SqlConnection con= new SqlConnection(source);
con.Open();
string cc="SELECT * FROM account WHERE pass='"+pass+"' and login ='"+login+"'";
comand=con.CreateCommand();
comand.CommandText=cc;
IDataReader reader1=comand.ExecuteReader();

Мне кажется, что какой то умный юзер сможет залезть в код, и поменять запрос(ну или еще что-то) и будет очень плохо) Как этого избежать?)
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение DbIMok 20 ноя 2012, 17:10

не соединяться с базой из кода на клиенте, конечно.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 17:12

Нет, ну это понятно, а где тогда соединяться?)
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение DbIMok 20 ноя 2012, 17:13

на сервере, где же еще
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 17:16

Так, я не понял) У меня есть игра, есть сервак с базой данных. При заходе в игру надо ввести логин и пароль. Я нажимаю на кнопку "Коннект" и....? И что там происходит?
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение DbIMok 20 ноя 2012, 17:25

происходит сетевое соединение с какой-то программкой на сервере. после проверки того, что этому клиенту (относительно) можно доверять, программка сообщает индивидуальный ключ для подписи сообщений. после этого ей с клиента посылается (условно) код операции (1 - логин), имя пользователя, пароль, подписанные (шифрованные) выданным ключом. серверная программка получает этот запрос и обращается с запросом к базе данных (которая снаружи конечно же не видна), потом выдает клиентской части подписанный ответ. и т.д. и т.п. а то вот логин/пароль (не в тексте, так в сетевых пакетах), вот база в инет торчит. куда ж это годится.
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 17:29

Ууууууу какая жесть, я думал все проще) То есть придется еще эту программку писать?)
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение DbIMok 20 ноя 2012, 17:33

можно и не писать, конечно. только зачем тогда спрашивать про защищенность?
правильный вопрос - половина ответа. учитесь формулировать вопросы понятно.
Новости > _Telegram чат @unity3d_ru (11.6k/4.8k online) > _Telegram канал @unity_news (4.7k подписчиков) > Телеграм тема > "Спасибо"
Аватара пользователя
DbIMok
Адепт
 
Сообщения: 6372
Зарегистрирован: 31 июл 2009, 14:05

Re: Защищенность коннекта к базе данных

Сообщение Woolf 20 ноя 2012, 18:05

Volandpro писал(а):Ууууууу какая жесть, я думал все проще) То есть придется еще эту программку писать?)


Самое простое решение - это PHP скрипты на сервере. Вы с клиента вызываете скрипт с параметрами, читаете ответ. К примеру, так можно сделать авторизацию, получение каких либо данных об игроке (например, его деньги и оружие), поиск открытых серверов для подключения. Но, конечно, для серьезных серверных решений с авторитарным сервером это не подходит. Вот что-то типа контры - сделать вполне можно. Т.е. залогинились, получили данные по оружию/деньгам, нажали "в бой" и подключились к игроку-серверу. Дальше - сеть юнити. Небезопасно с точки зрения применения игроками читов, но система рабочая и многими используется.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 19:45

Но ведь для пхп скрипта нужен сайт? И это через WWW придется делать?
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение Woolf 20 ноя 2012, 20:13

Volandpro писал(а):Но ведь для пхп скрипта нужен сайт? И это через WWW придется делать?


Ну конечно сервер нужен. А вы как хотели? Сетевую игру без сервера?
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 20:20

Не, ну сервер - это комп, где хранится БД, а сайт - это сайт) Ладно, тогда еще 1 вопрос. Например, у меня есть переменная level, мне нужно получать её из БД. Я обращаюсь к скрипту, он делает запрос к бд, возвращает это значение, и получается я пишу level=что-то, полученное из запроса.
Ведь кто-то же может написать level=over9000. Как получать переменные из БД безопасно?
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение Woolf 20 ноя 2012, 20:29

Volandpro писал(а):Не, ну сервер - это комп, где хранится БД, а сайт - это сайт) Ладно, тогда еще 1 вопрос. Например, у меня есть переменная level, мне нужно получать её из БД. Я обращаюсь к скрипту, он делает запрос к бд, возвращает это значение, и получается я пишу level=что-то, полученное из запроса.
Ведь кто-то же может написать level=over9000. Как получать переменные из БД безопасно?


Вам же сказали - не общаться с базой напрямую, а только через прослойку в виде отдельного сервера или скриптов пхп. К ним то никто доступ не сможет получить и что-то там поменять. А вот что-бы контролировать, что там мог подхимичить злоумышленник, скриптов недостаточно. Тут уже надо авторитарный сервер, который будет логику просчитывать. Вообще, вопрос защиты приложений от взлома очень обширный и до сих пор полностью не решен. Потому, что увы, но вынести абсолютно всю логику на сервер не получается. Всегда будут какие-либо читы. А вот минимизировать эти читы - вполне можно.
Последний раз редактировалось Woolf 20 ноя 2012, 20:32, всего редактировалось 1 раз.
Разработчик theFisherOnline - там, где клюёт
Разработчик Atom Fishing II - Первая 3D MMO про рыбалку
Разработчик Atom Fishing - Рыбалка на поплавок, донку, нахлыст, блесну в постъядерный период.
Аватара пользователя
Woolf
Адепт
 
Сообщения: 7179
Зарегистрирован: 02 мар 2009, 16:59

Re: Защищенность коннекта к базе данных

Сообщение Volandpro 20 ноя 2012, 20:32

да да, я понял) но если мне нужно получить какую-то переменную из БД, как это сделать?)
Аватара пользователя
Volandpro
UNITрон
 
Сообщения: 242
Зарегистрирован: 19 авг 2012, 17:07

Re: Защищенность коннекта к базе данных

Сообщение Good1101 20 ноя 2012, 20:57

Volandpro писал(а):да да, я понял) но если мне нужно получить какую-то переменную из БД, как это сделать?)

Несколько раз уже объяснили, либо делаете запрос к пхп скриту на сервере через www класс который запрашивает базу данных и возвращает ответ, либо пишете программку которую запускаете на сервере, подключаетесь к ней клиентом через сокет, и тащите через нее все что нужно.
Как тут стрелять?
Аватара пользователя
Good1101
Адепт
 
Сообщения: 1100
Зарегистрирован: 17 ноя 2011, 14:07
  • ICQ

След.

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 13