Zabezpieczenie bazy danych

0

Cześć wam. Jak mogę zabezpieczyć bazę danych w C# przed dekompilacją programu? Jaki jest sposób na bezpieczne przechowywanie danych logowania do bazy najlepiej poza aplikacją żeby po zdekompilowaniu nie dało się tych danych znaleźć. Zwykle to robiłem bazę danych razem z PHP, który był pośrednikiem ale to było dość prymitywne.

0

Prosta odpowiedź: nie dodawaj do programu danych serwera DB.
Napisz RESTową aplikację, z którą Twoja apka będzie się łączyć.

0

A mógłbyś powiedzieć co to za aplikacja, jak ją zbudować? Też jest tak jakby pośrednikiem między aplikacją a bazą?

0

Nie tak dawno sam o to pytałem :)

http://4programmers.net/Forum/Newbie/255679-webapi_-_podstawy_dla_laika?p=1160881#id1160881
Dzięki pomocy Pawła udało mi się postawić pierwszy WebService, więc myślę, że i Tobie się uda :).

A odpowiadając na Twoje pytanie: tak to jest taki pośrednik między aplikacją a bazą działający gdzieś w sieci.

0

A odnośnie bazy danych to powinienem ją zrobić na darmowym hostingu czy w C# i jakoś ją wrzucić na hosting?

0

Em, wykup sobie dedyka w OVH za 10 złotych miesięcznie, jak już chcesz się tak bawić, i miej spokój.

0

Podpinając się do pytania, a jak zabezpieczyć dostęp do WebService (dostęp tylko dla danej aplikacji)?

0

No ale po co zabezpieczać? :P
Przecież i tak user nie zrobi nic więcej ponad to, na co pozwala aplikacja.

0

@Langus miał pewnie na myśli to żeby ktoś nie napisał sobie własnej aplikacji korzystającej z danej usługi.

0

Pytanie będzie do hipekk bo ściągał ten projekt. W solucji WindowsFormsApplication5 jest folder service references, jak stworzyć ten service, który jest w tym folderze? Nie mogę do tego dojść

0

Masz go w drugim folderze w archiwum (WebService2).

0

Nie pytam gdzie to mam tylko jak stworzyć taki plik pod swoje potrzeby. W tym folderze service references jest klasa references, została wygenerowana automatycznie, w środku jest razem metoda HelloWorld także wygenerowana automatycznie. Chce się dowiedzieć w jaki sposób mogę wygenerować ten service

0
hipekk napisał(a):

@Langus miał pewnie na myśli to żeby ktoś nie napisał sobie własnej aplikacji korzystającej z danej usługi.

No ale co w tym złego, jeśliby ktoś stworzył? :|

0

Nie bez powodu napisałem Ci że masz go w folderze WebService2...

  1. Otwierasz projekt WebService2
  2. Dodajesz co chcesz, na wzór istniejącej metody (istotne jest [WebMethod])
  3. Uruchamiasz projekt (otworzy się przeglądarka w której możesz przetestować metody)
  4. Nie zatrzymują debugowania WebService w drugim VS otwierasz kienta.
  5. Klikasz prawym na wspomnianej referencji i wybierasz Update Service Reference

Od tej pory w klasie Service1SoapClient masz dostępne dopisane metody.

0
Patryk27 napisał(a):
hipekk napisał(a):

@Langus miał pewnie na myśli to żeby ktoś nie napisał sobie własnej aplikacji korzystającej z danej usługi.

No ale co w tym złego, jeśliby ktoś stworzył? :|

A czy takie zabezpieczenie nie chroniło by np przed atakiem DDoS ?

No i co z metodami zapisującymi dane do bazy ?
Czy nie powinny być w ten sposób "chronione" ?

0

A czy takie zabezpieczenie nie chroniło by np przed atakiem DDoS?

No nie, bo serwer i tak musiałby otrzymać najpierw request, aby w jakiś magiczny sposób sprawdzić czy nadała go aplikacja. Jeśli nadałbyś milion requestów z poziomu aplikacji to wykonałbyś DDoS tak czy siak.

No i co z metodami zapisującymi dane do bazy ?
Czy nie powinny być w ten sposób "chronione" ?

Przecież i tak przez API powinieneś udostępniać tylko te akcje, które użytkownik może robić z poziomu aplikacji, a nie jakieś generyczne doDropDatabase czy doQuery.

0
hipekk napisał(a):

Nie bez powodu napisałem Ci że masz go w folderze WebService2...

  1. Otwierasz projekt WebService2
  2. Dodajesz co chcesz, na wzór istniejącej metody (istotne jest [WebMethod])
  3. Uruchamiasz projekt (otworzy się przeglądarka w której możesz przetestować metody)
  4. Nie zatrzymują debugowania WebService w drugim VS otwierasz kienta.
  5. Klikasz prawym na wspomnianej referencji i wybierasz Update Service Reference

Od tej pory w klasie Service1SoapClient masz dostępne dopisane metody.

W porządku, działa ale chce się dowiedzieć jak mam wygenerować ten plik servicereferences1 w innej solucji?

0

Chyba doszedłem do tego, dzięki wielkie chłopaki!!!!

0
Patryk27 napisał(a):

No i co z metodami zapisującymi dane do bazy ?
Czy nie powinny być w ten sposób "chronione" ?

Przecież i tak przez API powinieneś udostępniać tylko te akcje, które użytkownik może robić z poziomu aplikacji, a nie jakieś generyczne doDropDatabase czy doQuery.

Jeżeli dobrze rozumiem to będziemy mieli też metody zapisujące wprowadzone przez użytkownika programu dane do bazy danych.
Np klient przesyła nam jaką opinię.
Wykorzystują taką metodę wystawioną na zewnątrz mogę wrzucić do bazy "stertę śmieci" która ktoś będzie musiał posprzątać...
Dobrze rozumiem ?

0

Np klient przesyła nam jaką opinię.
Wykorzystują taką metodę wystawioną na zewnątrz mogę wrzucić do bazy "stertę śmieci" która ktoś będzie musiał posprzątać

Przed wysłaniem opinii klient musi dokonać autoryzacji, otrzymując klucz sesji.
Dopiero mając ten klucz sesji może wystawić opinię, i w tym już momencie możesz przecież wykryć nadużywanie tego (po kluczu sesji, np. częściej niż raz na minutę) i blokować przed samym zapisaniem do bazy danych.

0

A mam jeszcze takie głupie pytanie. Gdzie mogę znaleźć informacje niezbędne do wypełnienia connectionStringa? Server name nie mogę za nic znaleźć... Możecie mnie jakoś nakierować?

1 użytkowników online, w tym zalogowanych: 0, gości: 1