Svetelektro.com

Svetelektro.com

Meno:
Heslo:
SVETELEKTRO • Ako správne pristupovať k databáze?

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

Ako správne pristupovať k databáze?

Odoslaťod Radus » 28 Nov 2019, 10: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.
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod JohnnyElektro » 28 Nov 2019, 14: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.
JohnnyElektro
Nový člen
Nový člen
Príspevky: 61
Založený: 16.07.2019
Karma: 0

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

Odoslaťod 21stano21 » 28 Nov 2019, 14: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
The power of Linux.
21stano21
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 169
Založený: 05.01.2013
Bydlisko: ZM
Karma: 1

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

Odoslaťod dan21 » 28 Nov 2019, 15:04

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

https://www.codeproject.com/Articles/11 ... Web-Conf-2
dan21
Obrázok používateľa
Ultimate člen
Ultimate člen
Príspevky: 2603
Založený: 11.04.2007
Bydlisko: ZA
Karma: 17

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

Odoslaťod JohnnyElektro » 28 Nov 2019, 15: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.
JohnnyElektro
Nový člen
Nový člen
Príspevky: 61
Založený: 16.07.2019
Karma: 0

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

Odoslaťod Radus » 28 Nov 2019, 15: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.
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod Victorio » 28 Nov 2019, 17: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 ?
Victorio
Stály člen
Stály člen
Príspevky: 364
Založený: 12.03.2014
Bydlisko: Michalovce
Karma: 3

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

Odoslaťod Radus » 28 Nov 2019, 17: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á :))
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod JohnnyElektro » 28 Nov 2019, 17: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.
JohnnyElektro
Nový člen
Nový člen
Príspevky: 61
Založený: 16.07.2019
Karma: 0

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

Odoslaťod Victorio » 28 Nov 2019, 21: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.
Victorio
Stály člen
Stály člen
Príspevky: 364
Založený: 12.03.2014
Bydlisko: Michalovce
Karma: 3

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

Odoslaťod pocitujlasku » 28 Nov 2019, 21: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)
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 4660
Vek: 36.76
Založený: 20.07.2007
Bydlisko: Poprad
Karma: 18

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

Odoslaťod Radus » 28 Nov 2019, 22: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...
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod JohnnyElektro » 29 Nov 2019, 00: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.
JohnnyElektro
Nový člen
Nový člen
Príspevky: 61
Založený: 16.07.2019
Karma: 0

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

Odoslaťod pocitujlasku » 29 Nov 2019, 06: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.
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 4660
Vek: 36.76
Založený: 20.07.2007
Bydlisko: Poprad
Karma: 18

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

Odoslaťod Radus » 29 Nov 2019, 09: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ť...
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod zen » 01 Dec 2019, 21:00

Cosi mi tu nesedi. Hadam, ze pouzivas net share a net use. Kde je program pre pouzivatelia kde je databaza?
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)
zen
Obrázok používateľa
Stály člen
Stály člen
Príspevky: 397
Založený: 22.11.2013
Bydlisko: Cadca
Karma: 5

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

Odoslaťod pocitujlasku » 01 Dec 2019, 21: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.
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 4660
Vek: 36.76
Založený: 20.07.2007
Bydlisko: Poprad
Karma: 18

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

Odoslaťod Radus » 02 Dec 2019, 17: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
Radus
Obrázok používateľa
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1026
Vek: 37.78
Založený: 27.10.2009
Bydlisko: Prešov
Karma: 6

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

Odoslaťod pocitujlasku » 02 Dec 2019, 17:33

msdn, alebo https://github.com/Microsoft - tam su zdrojaky programov priamo od MS
Intel, Nvidia, Ubuntu, Firefox, Asus, Nissan, Jelinek 52%, Metal
---------------------------------------------------------------------------------------------
Jedním z největších projevů nedůvěry v Boha je hromosvod na kostele.
pocitujlasku
Ultimate člen
Ultimate člen
Príspevky: 4660
Vek: 36.76
Založený: 20.07.2007
Bydlisko: Poprad
Karma: 18


Naspäť na Softvér

Kto je prítomný

Užívatelia prezerajúci si toto fórum: Žiadny registrovaný používateľ a 1 hosť.

Forums ©
Autor stránky je Ondrej Závodský(zawin), o graficky design sa stará Ľuboš Fabo(BUFU).

TOPlist

Powered by Copyright © UNITED-NUKE CMS. All Rights Reserved.
Čas potrebný k spracovaniu stránky 0.72 sekúnd