Válí se ti projekty v šuplíku? Dostaň je mezi lidi a získej cool tričko a body na profi IT kurzy v soutěži ITnetwork summer 2017!
Přidej si svou IT školu do profilu a najdi spolužáky zde na síti :)
Avatar
Eldest
Redaktor
Avatar
Eldest:14.2.2015 15:07

Ahoj, chtěl bych se zeptat, zda se dá ve zdrojovém kódu nějak skrýt či zašifrovat heslo k připojení k DB. Ve škole musíme odevzdávat učiteli programy na kontrolu. Většinou to jsou programy, kde se připojujeme ke vzdálenému serveru (...MySQL...). Problém je v tom, že bych nechtěl, aby učitel viděl moje heslo. Pomocí kterého se přihlašují do své databáze...

 
Odpovědět 14.2.2015 15:07
Avatar
Odpovídá na Eldest
sadlomaslox25:14.2.2015 16:23

pokud vim tak se to resi 2 zpusoby:

  1. slozitejsi varianta je udelas si mezivrstvu v podobe weboveve sluzby ktera obsluhuje db. toto je nejcastejsi reseni.
  2. zalozit v db usera a tomu priradit prislusna opravneni pro cteni a zapis. tabulky je mozna ochranit pomoci view a stored procedur.

pokud by ses znazil nejakym zpusobme heslo "znecitelnit" tak nezapomen ze .NET programy se daji velmi jednoduse dekompilovat a da se v nich cist jako v knize :)

 
Nahoru Odpovědět 14.2.2015 16:23
Avatar
Eldest
Redaktor
Avatar
Odpovídá na sadlomaslox25
Eldest:14.2.2015 18:10

Díky za odpověď, ale nevím, jestli jsi mě správně pochopil. Například: Připojuji s programu C# k serveru -> musím při přihlášení zadat adresu serveru, název databáze, ke které se připojuji, jméno uživatele a heslo. Nic z toho mi nevadí kromě hesla. To potřebuji nějak ve zdrojáku skrýt, aby ho učitel, spolužák nebo prostě kdokoliv neviděl.

 
Nahoru Odpovědět 14.2.2015 18:10
Avatar
Odpovídá na Eldest
sadlomaslox25:14.2.2015 18:37

no ja sem te pochopil. ale tys asi nepochopil ze to nejde tak jak si predstavujes :D.

priklad toho co muzes udelat:
string zasifrovane_hes­lo_databaze="xik­nasodineqwwed";
string klic_k_rozsifro­vani="passwor­d1";
SqlConnection con=new SqlConnection("IP=1­.1.1.1;Userna­me=user;Pass="+si­fra.Desifruj(za­sifrovane_hes­lo_databaze,klic_k_roz­sifrovani));

tvuj kod si muze kdokoli otevrit tyhle 3 radky zkopirovat a provest u sebe a to heslo zjisti. neni moznost jak to skryt.

 
Nahoru Odpovědět 14.2.2015 18:37
Avatar
Eldest
Redaktor
Avatar
Odpovídá na sadlomaslox25
Eldest:14.2.2015 19:13

Ani to třeba nějak zahashovat?

 
Nahoru Odpovědět 14.2.2015 19:13
Avatar
Bogdan
Redaktor
Avatar
Odpovídá na Eldest
Bogdan:14.2.2015 19:55

Prostě tam nevkládej svoje běžné údaje, vytvoř si nového usera a dej mu minimalni práva co to jde.

Odevzdáš úkol, učitel zkontroluje, dá za to známku, a ty hned smaž uživatele nebo změň heslo a jeto.

Jinak to udělat nejde.

Editováno 14.2.2015 19:56
 
Nahoru Odpovědět 14.2.2015 19:55
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na Eldest
Jan Vargovský:14.2.2015 20:19
https://msdn.microsoft.com/en-us/library/89211k9b(v=vs.80).aspx
 
Nahoru Odpovědět 14.2.2015 20:19
Avatar
Odpovídá na Jan Vargovský
sadlomaslox25:14.2.2015 20:28

to je trochu jiny scenar.to co popisuji na tom MSDN nejde moc aplikovat na tento pripad.

 
Nahoru Odpovědět 14.2.2015 20:28
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na sadlomaslox25
Jan Vargovský:14.2.2015 21:04

Vždyť tam přece používá taky connection string, tak ať si ho přesune do app.configu, ne?

 
Nahoru Odpovědět 14.2.2015 21:04
Avatar
Odpovídá na Jan Vargovský
sadlomaslox25:14.2.2015 22:00

"Note
The connection string can only be decrypted on the computer on which it was encrypted."

 
Nahoru Odpovědět 14.2.2015 22:00
Avatar
Jan Vargovský
Redaktor
Avatar
Odpovídá na sadlomaslox25
Jan Vargovský:14.2.2015 22:02

Tak nic no :) já tohle zatím moc neřešil.

 
Nahoru Odpovědět 14.2.2015 22:02
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 11 zpráv z 11.