Jak schować kod

0

Witam,
Czy istnieje możliwość aby w jakiś sposób schować kod programu ponieważ wykorzystuje connect do bazy sql i w kodzie widnieją dane logowania do niej, a ludzie "dekompiluja" mój program i wchodzą do bazy?

4
Maskak47 napisał(a):

ludzie "dekompiluja" mój program i wchodzą do bazy?

Ludź nie powinien być w stanie zrobić bezpośrednio w bazie czego nie wolno mu zrobić z poziomu programu, więc nie powinno być to zmartwieniem.
Również w idealnym przypadku ludź nie powinien mieć potrzeby grzebania w bazie – jeśli to robi to znaczy że jakiejś funkcjonalności w programie chyba brakuje…

2

Niezależnie od tego, jak głęboko i jak dziwnie zaszyfrujesz te dane, w pewnym momencie muszą one i tak zostać odszyfrowane (np. aby przekazać je sterownikowi) - odnalezienie tego miejsca i odczytanie z pamięci odszyfrowanych już danych z wykorzystaniem debuggera jest kwestią kilku minut.

Nie powinieneś w ogóle łączyć się bezpośrednio z bazą danych - wystaw sobie normalne API z uwierzytelnianiem.

0
Azarien napisał(a):
Maskak47 napisał(a):

ludzie "dekompiluja" mój program i wchodzą do bazy?

Ludź nie powinien być w stanie zrobić bezpośrednio w bazie czego nie wolno mu zrobić z poziomu programu, więc nie powinno być to zmartwieniem.
Również w idealnym przypadku ludź nie powinien mieć potrzeby grzebania w bazie – jeśli to robi to znaczy że jakiejś funkcjonalności w programie chyba brakuje…

mam baze z strony na ktorej kupilem hosting i nie mam praw zeby zminic uprawnienia ;)
a niestety mam tworzenie kont w aplikacji i niestety ktos mi sie wlamuje i usuwa konta itp

2

Program powinien pracować na użytkowniku bazodanowym o obniżonych uprawnieniach żeby właśnie nie można było wyciągać wszystkiego mając dostęp do hasła. Proponuję założyć takiego usera, nadawać granty na odpowiednie tabele, a jeśli chcemy coś ukryć to używajmy widoków i procedur i do nich zadawajmy uprawnienia. Ostatecznie możesz zrobić pośrednik między aplikacją a bazą w postaci proxy/api, które potrafi tylko stosowne dane zwracać, a to API będzie poza dostępem użytkowników.

2

Kasowanie kont mozesz zablokowac uzywajac uzytkownika o obnizonych uprawnieniach (j.w.)

Zmienianie nieswoich danych mozesz zablokowac usuwajac uprawnienie update i dajac w zamian SP lub modyfikowalny widok (jesli potrzeba w aplikacji). W tym SP mozesz sprawdzac czy uzytkownik modyfikuje swoje dane (najlepiej na podstawie kontekstu bazy a nie parametrow od uzytkownika).

Dodatkowo dodalbym tracing zeby sprawdzic czy na pewno to robi ktos specjalnie. Bo moze sie okazac ze po prostu masz babola w aplikacji.
Po prostu dodaj jakas flage ktora jesli jest aktywna powoduje odkladanie szczegolow kazdej operacji gdzies do logu.

0

az.pl i moge tylko stworzyc nowa baze z juz istniejacym uzytkownikiem i nie moge zmienic mu uprawnien ;/ wiec chyba pozostaje mi tylko zmiana bazy danych
Dziekuje wszystkim za pomoc

1

Najrozsądniejszym rozwiązaniem będzie wystawienie API które obsłuży żądania dostępu do bazy zamiast wystawiania współdzielonej bazy każdemu klientowi

0
var napisał(a):

Najrozsądniejszym rozwiązaniem będzie wystawienie API które obsłuży żądania dostępu do bazy zamiast wystawiania współdzielonej bazy każdemu klientowi

a moglbys mi podac jakis tutorial do tego jak by to mialo dzialac? ja zielony jestem troche ;/

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