Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

c++ prawdziwy system logowania!

Ostatnio zmodyfikowano 2020-06-09 14:50
Autor Wiadomość
Gildin213
Temat założony przez niniejszego użytkownika
c++ prawdziwy system logowania!
» 2020-06-05 18:06:38
Hej wszystkim!
Chciałbym prosić o poradę jak bezpiecznie się połączyć z bazą MariaDB z zdalnego komputera w aplikacji .exe napisanej w c++.

Kiedyś słyszałem o jakimś pliku konfiguracyjnym, ale nic więcej nie mam! Mam MySqlConnector'a od dev'a ale jak mamy np serwer na stronie cba to nie można się połączyć, bo baza mysql jest na lokalnym komputerze.


Chce zrobić prawdziwy system logowanie przez c++ do bazy danych na forum mybb!


Jeżeli nie rozumiesz, czytaj dalej

Chce jakby zrobić system logowania w języku c++ aby połączyć się ze zdalną bazą danych, ale tak aby nie wpisywać hasła i loginu do bazy danych w plikach .cpp .h .hpp!

P-176973
pekfos
» 2020-06-06 12:07:58
Pobierz dane logowania z pliku, albo prosto od użytkownika. Jak dostarczysz login i hasło do MySqlConnector, to już w zasadzie Twoja sprawa.

jak mamy np serwer na stronie cba to nie można się połączyć
https://www.cba.pl/forum​/pomoc-cba-pl-f17​/zdalny-dostep-do-mysql-t27566.html
P-176977
DejaVu
» 2020-06-06 12:18:37
Nie zrobisz bezpiecznej aplikacji exe nawiązując bezpośrednie połączenie do bazy danych na zdalnym hoście. Musisz napisać aplikację (uruchamianą na serwerze), która będzie komunikowała się z bazą danych oraz będzie wystawiała API (np. RESTowe) dla aplikacji klienckich.
P-176978
Gildin213
Temat założony przez niniejszego użytkownika
Plosę
» 2020-06-06 13:59:11
@DejaVu Mógłbyś mi więcej powiedzieć o tym? Proszę :)
P-176981
pekfos
» 2020-06-06 19:37:47
Nie każda legalna operacja na bazie danych jest legalna dla systemu, który tej bazy używa. Jeśli użytkownik ma dostęp prosto do bazy, to już przegrałeś, bo może wykonać dowolną operację, na którą zezwalają uprawnienia przypisane do danego konta. Jeśli ma prawo modyfikować jakąś tabelę, to może to zrobić niezależnie od tego, czy zmiana ma sens, albo czy ten użytkownik w ogóle powinien mieć prawo wykonać taką zmianę. Baza danych jest na to prostu zbyt niskopoziomowym narzędziem. Dlatego lepiej jak jest serwer pośredniczący, na którym możesz wykonać wysokopoziomowe operacje, ten serwer sprawdzi uprawnienia użytkownika, poprawność danych i tak dalej, a następnie wykona odpowiednie zmiany w bazie danych. To o co pytasz w tym temacie powinno być zrealizowane właśnie w tym serwerze pośredniczącym. Możesz go napisać w PHP, a jeśli hosting na to pozwala to choćby i w C++.
P-176983
Gildin213
Temat założony przez niniejszego użytkownika
» 2020-06-06 22:00:41
ja już nic z tego nie kumam jeden mówi o uprawnieniach gdy nie mogę zrobić bo baza jest dostępna tylko na lokalnym serwerze, druga osoba mówi o API co do mnie bardziej przemawia lecz nie wiem jak się do tego dobrać, bo nigdy nie bawiłem w bazy sql

Myślałem że jak pobiorę connector c++ to od razu mogę robić swoje, ale potem się okazało że ten serwer działa tylko na lokalnym komputerze ("dla bezpieczeństwa")
P-176987
pekfos
» 2020-06-06 22:59:01
Obaj mówimy o tym samym. MySQL nie jest udostępniony na zewnątrz ze względów bezpieczeństwa, bo baza danych nic nie wie o znaczeniu wykonywanych operacji w kontekście systemu w którym działa. Potrzebny jest serwer, z jakimś wystawionym na sieć API, który by realizował operacje z poprawną kontrolą dostępu i zapewnieniem poprawności operacji na bazie. Konektor do bazy, jeśli już, ma być na tym właśnie serwerze.
Od biedy możesz zmienić hosting na taki, który nie blokuje dostępu do bazy danych i napisać taką aplikację jaką chcesz, ale to co chcesz osiągnąć będzie się nadawać do użytku tylko przez administratora. Jeśli dasz to szaremu użytkownikowi, to prędzej czy później ktoś wyciągnie dane logowania, zaloguje się przez MySQL Workbencha i zrobi jesień średniowiecza z Twojej bazy.
Przykładowo: Masz na forum tabelę z użytkownikami, gdzie masz kolumny ID, nick, ranga i URL avatara. Chcesz by użytkownik mógł sobie zmienić avatar przez twojego klienta, więc konto mysqlowe ma uprawnienia do UPDATE na tej tabeli. Z tymi uprawnieniami możesz ustawić URL avatara na cokolwiek (co jest wektorem ataku XSS), możesz ustawić sobie rangę administratora, albo możesz wszystkim dać bana, jeśli jest to implementowane jako ranga. Wszytko to mieści się w uprawnieniach nadanych na poziomie bazy, a nic z tego nie powinno się mieścić w uprawnieniach na poziomie systemu, jeśli w ogóle byłoby legalną operacją. Wszystko co dzieje się po stronie klienta może być ominięte, więc skuteczna walidacja danych i kontrola uprawnień musi być po stronie serwera, a użycie samych uprawnień mysqlowych do tego nie wystarczy.
P-176988
Gildin213
Temat założony przez niniejszego użytkownika
» 2020-06-07 00:17:58
Znajdę gdzieś pomoc do tego, jak się do tego zabrać?
Nawet na zagranicznym jakimś forum?
Chce to ogarnąć, wręcz muszę!
Dziękuje z góry za jakieś linkacze :P
P-176989
« 1 » 2 3 4
  Strona 1 z 4 Następna strona