c # как защитить соединение с базой данных?

Мне нравится c # , но очень плохо, что ты не можешь подключиться к базе данных. Я говорю о том, когда вы создадите приложение, которое вы затем сделаете общедоступным для использования другими.

Неважно, сколько вы кодируете, шифруете, скрываете и сколько угодно строк подключения, это не имеет значения. Злоумышленнику не нужна зашифрованная строка соединения (и его все еще легко получить) ... он имеет в своем распоряжении тот же объект MySQL с соединением, открытым для консультации по желанию.

Кто-нибудь, кто скажет мне формулу для защиты экземпляра (объекта) и целостности каждого запроса к базе данных, включая начальное соединение?

Печально, что это становится реальным У меня была идея, пока я не понял, что исполняемый файл можно декомпилировать, и оттуда я решил, что база данных находится в опасности.

3
задан 16.08.2019, 16:36
1 ответ

Как я прочитал в комментариях, ты разрабатываешь настольное приложение, которое присоединилось бы прямо в базу данных MySQL.

Эти случаи трудные securizar, потому что он вынуждает тебя иметь пользователя и пароль MySQL в клиенте, который, хотя ты это будешь сохранять encriptado, вредоносный пользователь мог бы встречать их и соглашаться прямо на базу данных.

Чтобы это предотвращать было бы возможно устанавливать безопасность посредством верительных грамот Windows (интегрированное Удостоверение), но это также не свободно от проблем:

  • Эта функциональность только доступна для редактирования Энтерприсе де МИСКЛ (в SQL Server если, что, даже в бесплатном редактировании)

  • Какой-то пользователь "listillo" мог бы соглашаться прямо на базу данных, с Вашими верительными грамотами, не проходя по приложению

Следовательно, я встречаюсь с несколькими комментариями, которые они рекомендуют не реализовывать прямую связь, а проходить по промежуточной API, доступ которой должен быть защищенным (для этого обычно используют безопасность, основанную в tokens)

Для осуществления этой API, Одата Веб API мог бы быть хорошим выбором.

Как только то, что ты комментируешь использования коммуникации Websockets для всего, я не знаю, хорошая идея ли это, обычно используют больше для извещений или обновлений данных, чтобы отображать их в реальном времени и, может быть, я осложнил тебе разработку.

Также я рекомендую тебе бросать беглый взгляд в SignalR, который является книжным магазином.NET, что упрощает много cominicaciones в реальном времени с Websockets, и он гноил облегчать тебе использование с приложения-клиента в C#.

1
ответ дан 24.11.2019, 13:19
  • 1
    Я понимаю, у меня есть сомнение, как я могу распознавать с websocket (php), что пользователь est и # 225; соединенный с моего aplicaci и # 243; n в c # и не с Веба или другой платформы из-за эксперта и # 237; говорить это? Или же, сервер websocket быть и # 237; в выполняя в php и я хочу с php знать с тех пор, как " plataforma" присоединяется клиент (например, Веб). в случае, если буду Веб я разъединять и # 237; в в вышеупомянутого клиента, так как aplicaci и # 243; n не tendr и # 237; в aplicaci и # 243; n Веб и в случае, если я буду иметь манипулировать и # 237; которому делать с таким клиентом. – LuKks 24.09.2016, 04:54
  • 2
    Привет @LucasBarrena, что tendr и # 237; эксперт, что делать значит осуществлять механизм безопасности для того, чтобы только авторизованные пользователи установили conexi и # 243; n с WebSocket, в этот art и # 237; зад (в ingl и # 233; s) говори о теме. В SignalR est и # 225; м и # 225; s объединенный – rsciriano 24.09.2016, 23:05
  • 3
    @LucasBarrena, конечно, это спорения с тех пор, как платформа установила conexi и # 243; n quiz и # 225; s podr и # 237, то есть соглашаясь на user-agent, но также это не конечно, потому что возможно фальсифицировать. Tambi и # 233; n podr и # 237; чтобы посылать возглавленный HTTP, чтобы дифференцировать их – rsciriano 24.09.2016, 23:10
  • 4
    Спасибо за informaci и # 243; n, я быть и # 225; и #250; til:) – LuKks 25.09.2016, 10:48
  • 5
    Привет. Помимо всего прокомментированного из-за приятеля и # 241; eros. Я рекомендую тебе, что такие чувствительные данные как пользователи и contrase и # 241; схвати храни их в SecureString – Sergio Parra Guerra 25.09.2016, 23:18