Ako správne pristupovať k databáze?

Ak hľadáte nejaký softvér do PC prípadne ak s ním máte nejaký problém.

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 28 Nov 2019, 09:05

Zdravím vospolok, chcel by som sa spýtať skúsenejších ako správne programovo pristupovať k databáze. Robím len malé aplikácie v C#rpe takým spôsobom že mám na sieťovom disku uloženú databázu ku ktorej sa pripájajú rôzny užívatelia pomocou môjho programu. Napríklad dochádzkový systém. Program mi už beží zopár rokov bez zjavných problémov. Nedávno som ale zistil (...och aké to prekvapenie :)) že môj skompilovaný exe program sa dá jednoducho dekompilovať (ILSpy) a kedže mám v programe uvedený connection string s heslom, dá sa veľmi jednoducho heslo zistiť a použiť ho na priamy prístup k databáze.
Ako sa teda rieši takýto prístup v programe aby to bolo bezpečné a nedalo sa heslo zistiť? Na prístup k databáze používam OLEdb, syntax SQL.
Ďakujem za rady.
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa JohnnyElektro » 28 Nov 2019, 13:40

Nejaky sposob dekompilacie kde sa da precitat konstantny string bude stale mozny.
Jeden sposob na ochranu je taky, ze si nechas jedno heslo pre seba iba, a s tym, ked sa prihlasis do databazy z nejakeho konca, tak sa koniec "podpise", to znamena, ze ina MAC adresa sa nepripoji bez toho aby bola ulozena v podpisanych MAC adresach, MAC adresa musi byt sucast mena uzivatela.

Ked sa ti chce podpisovat kompy ovsem. Mozes to heslo dat aj zakaznikovi ak mu doverujes a necestovat za nim, resp. mozes ju dat kazdemu kto fyzicky disponuje databazou, ten sa logne cez super admina vzdy aj tak.
0

21stano21
Stály člen
Stály člen
Príspevky: 239
Dátum registrácie: 05 Jan 2013, 17:48
Bydlisko: ZM

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa 21stano21 » 28 Nov 2019, 13:52

Len otázka, ak to niekto dokáže zistiť dekompiláciou, nedokáže to zistiť aj odpozorovaním komunikácie na sieti ( napr. wireshark)? :D
0
The power of Linux.

dan21
Ultimate člen
Ultimate člen
Príspevky: 3016
Dátum registrácie: 11 Apr 2007, 00:00
Bydlisko: ZA

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa dan21 » 28 Nov 2019, 14:04

Precitaj si toto. Mozno pomoze. V aplikacii na ktorej pracujem to pouzivame.

https://www.codeproject.com/Articles/11 ... Web-Conf-2
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa JohnnyElektro » 28 Nov 2019, 14:19

21stano21 napísal:Len otázka, ak to niekto dokáže zistiť dekompiláciou, nedokáže to zistiť aj odpozorovaním komunikácie na sieti ( napr. wireshark)? :D
Samozrejme, avsak komunikacia prebieha cez https alebo iny secure protokol, takze iba odpocutie ti vela skutocne neda.
0

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 28 Nov 2019, 14:49

dan21 napísal:Precitaj si toto. Mozno pomoze. V aplikacii na ktorej pracujem to pouzivame.

https://www.codeproject.com/Articles/11 ... Web-Conf-2
...ďakujem, niečo také som hľadal.
0

Victorio
Pokročilý člen
Pokročilý člen
Príspevky: 556
Dátum registrácie: 12 Mar 2014, 21:09
Bydlisko: Michalovce

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Victorio » 28 Nov 2019, 16:11

niečo podobné som riešil, ukladať heslo priamo v zdrojáku/exe nie je bezpečné. preto ho ukladám kryptované v externom súbore.
dekódovať heslo z ext.súboru je komplikované (zámerne nepíšem nemožné, lebo teraz nič nie je bezpečné).
pri zadaní hesla užívateľa sa toto porovná s dekryptovanym vzorovým heslom.
Je pravda že som zatiaľ nedoriešil odchytenie hesla pri zadávaní cez web rozhranie...
Ak sa nemýlim, tak by to malo byť dostatočne bezpečné, alebo som na niečo zabudol ?
0

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 28 Nov 2019, 16:18

Ja ti už ani neviem, lebo akonáhle dokážeš dekompilovať mechanizmus ako program dekryptuje dané heslo, aj z externého súboru, vieš sa potom spatne k tomu heslu dostať...
Toto mi práve vŕta hlavou. Napríklad vo vlastnej databáze mám už hesla uložené ako HASH, ale ak sa mi niekto takto jednoducho dostane priamo do databázy, je to dosť na prd...
//Riešim ochranu komunikácie medzi programom a databázou kedy program musí poskytnúť heslo pre spojenie s databázou... (je mi jedno odkiaľ si ho vycucá :))
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa JohnnyElektro » 28 Nov 2019, 16:24

Victorio napísal:niečo podobné som riešil, ukladať heslo priamo v zdrojáku/exe nie je bezpečné. preto ho ukladám kryptované v externom súbore.
dekódovať heslo z ext.súboru je komplikované (zámerne nepíšem nemožné, lebo teraz nič nie je bezpečné).
pri zadaní hesla užívateľa sa toto porovná s dekryptovanym vzorovým heslom.
Dekompilovany program skompilovat a debugovat miestecko kde v ramke visi heslo. Ale aspon si to trochu "oddialil" a dal hackerovi pracu navyse.
0

Victorio
Pokročilý člen
Pokročilý člen
Príspevky: 556
Dátum registrácie: 12 Mar 2014, 21:09
Bydlisko: Michalovce

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Victorio » 28 Nov 2019, 20:00

Hmm to by sa dalo, ale programujem v softe ktory nieje velmi rozsireny, v SK v nom robi iba par ludi (si myslim) v de us trosku viac ale nie je to main streem :)

A databaza no treba konektnut databazu so zadanim mena hesla to je slabina ale riesim to tam tiez kryptovanim, heslo v zdrojaku nie je v databaze je kryptovane iba vo chvili ked ho zada pouzivatel tak zrejme bude v pamati ale to by heker musel v tej chvili sediet pri pouzivatelovi inak ked dam release tak heslo z ram zmizne.
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6200
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa pocitujlasku » 28 Nov 2019, 20:52

riesi sa to bud tak, ze mas v zdrojaku zakryptovane heslo a pri pripojeni ho odsifrujes, alebo priamo uzivatelske meno/heslo je do db, vtedy uzivatelov spravujes priamo v db. alebo tam das medzivrstvu: webservice. ktory ma api na ktore sa pripaja klient.
ten soft sa pripaja na lokalnu db, alebo niekam na server? ak na server, tak by som uvazoval o webservice, uz len z dovodu, ze dotazy na db vedia pekne vytazit siet.
ak je lokalna, tak tam je to fuk, lebo k datam sa dostanes aj ked nevies heslo do db (skopirujes subory na iny pc a tam ich otvoris)
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 28 Nov 2019, 21:30

Databázu mám lokálnu, sama o sebe je chránená heslom, neviem ako by som sa do nej po pravde dostal bez hesla aj keby som ju nakopíroval niekde inde...
0

JohnnyElektro
Stály člen
Stály člen
Príspevky: 386
Dátum registrácie: 16 Júl 2019, 14:22

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa JohnnyElektro » 28 Nov 2019, 23:43

Ak ju nakopirujes na DB server fyzicky tak cer dbroota, pokial na nej nemas "on connection triger" na pripojenie ktory dbroota zhodi ako je to mozne napriklad vo FB SQL na vybranych tabulkach.
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6200
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa pocitujlasku » 29 Nov 2019, 05:44

co je to presne za db? vacsina z nich totiz samotne subory nesifruje, to je podobne, ako ked mas prihlasenie do windows. staci ti dat disk do ineho pc a vies si odtial skopcit subory. tu ti ich staci skopirovat na pc, kde vies do db prihlasenie a mas udaje.
Este mam otazku. ked pises, ze mas db na zdielanom disku, dufam, ze to nemas ako som raz videl u jednej firmy, ze namiesto sql servra isli priamo na dbf subory a cudovali sa, preco im to blbne.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 29 Nov 2019, 08:31

Áno, presne tak ,na drzáka, ju mám na sieťovom disku, ale zatiaľ to žiadne iné problémy nerobilo. Databáza je Accessova, accdb, a tá je chránena heslom. To musím pri prístupe uvádzať aby som mal na databázu pristup v connection stringu. Myslím že takto zaheslovať sa dá aj bežná databáza na SQL servru. Potom k nej pristupujem pomocou bežnej syntaxe SQL cez C#.
Keby som chcel riešiť databázu cez SQLserver, predopkladám že ten by musel bežať na servri... Popravde, týmto smerom sa v tej problematike vôbec nevyznám...
Chcel by som vedieť ako to mám teda robiť správne, alebo viac profesionálne...
//Ako teda funguje ochrana pri prístupe pomocou SQL servra, ked je autentifikacia postavená na účtoch windowsu? Čo zabráni nejakému môjmu užívatelovi aby si napísal k databáze vlastný program a zmenil mi ju nepríjemným spôsobom? Kedže prístup bude mať...
0

Používateľov profilový obrázok
zen
Stály člen
Stály člen
Príspevky: 483
Dátum registrácie: 22 Nov 2013, 14:33
Bydlisko: Cadca

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa zen » 01 Dec 2019, 20:00

Cosi mi tu nesedi. Hadam, ze pouzivas net share a net use. Kde je program pre pouzivatelia kde je databaza?
0
Samozřejmě, že dědeček nemá kapesní hodinky poháněné elektřinou. Takový nesmysl si může vymyslit jen Saturnin. (Zdenek Jirotka, 1942)

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6200
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa pocitujlasku » 01 Dec 2019, 20:21

sql server riesi uzivatelov bud lokalne, teda ucty ma u seba, alebo cez active directory.
uzivatelske prava sa nastavuju bud na konkretnu db, alebo este aj v ramci db na napr. jednotlive tabulky, alebo operacie. napr. uzivatel vie citat, ale nedokaze menit zaznamy.
uzivatel si moze napisat vlastny program, ale aj tak aa musi autentifikovat voci db.
mas 2 moznosti ako to riesit.
dat tam medzivrstvu - nejaky idealne rest, alebo soap servis, ktory bude bezat na servri a na ktory sa bude pripajat klientsky program. vtedy nemusis v klientskom sw riesit nic co sa tyka db, lebo on bude komunikovat s tym servisom. a az ten servus pojde na db. taketo riesenie sa pouziva vo vacsich firmach, lebo ty teoreticky mozes tu db presuvat, alebo uplne zmenit - napr. z access na mssql bez toho, aby si menil klienta.
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Používateľov profilový obrázok
Radus
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1497
Dátum registrácie: 27 Okt 2009, 00:00
Bydlisko: Prešov
Vek: 42

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa Radus » 02 Dec 2019, 16:29

No vidím že v tomto smere mám čo ešte doháňať. Ja som si život moc nekomplikoval. Databázu aj program mám na jednom sieťovom disku a odtiaľ ho užívatelia spúšťajú a pomocou neho pristupujú k databáze. (C#, OleDb) Skúšal som aj správanie keď by sa mi na ňu pripojilo naraz viac užívatelov, a to asi takým spôsobom, že som si vytvoril programček ktorý každých pár ms požadoval niečo z databázy a ja som sa s ňou na druhej strane pokúšal pracovať. Kedže stále po dopyte pripojenie uzatváram, nedospel som dokonca ani k výnimke odopreného prístupu...
Ale, ako som googlil aspoň približne to čo ste mi popísali, tak moje riešenie by si nezaslúžilo ani pomenovanie neprofesionálne :)
Viete mi poradiť nejakú literatúru kde by som si vedel doplniť svoje nevedomosti?
Ďakujem
0

pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 6200
Dátum registrácie: 20 Júl 2007, 00:00
Vek: 41

Re: Ako správne pristupovať k databáze?

Príspevok od používateľa pocitujlasku » 02 Dec 2019, 16:33

msdn, alebo https://github.com/Microsoft - tam su zdrojaky programov priamo od MS
0
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok