Autor Zpráva
gardener
Profil
Zdravím
Již delší dobu mě zajímá, jak co nejlépe ochránit hesla, teď když je používám čím dál tím častěji na webu chtěl bych se zeptat na několik věcí.

Dejme tomu, že mám kus skriptu odkazující na třídu:
  $mail->Host = "smtp.t-email.cz";  // zadáme adresu SMTP serveru
  $mail->SMTPAuth = false;               // nastavíme true v případě, že server vyžaduje SMTP autentizaci
  $mail->Username = "neco@gmail.com";   // uživatelské jméno pro SMTP autentizaci
  $mail->Password = "tajneheslo";            // heslo pro SMTP autentizaci


Když tento skript, budu mít s takto předvyplněnými hesly třeba přímo v adresáři scritps, tak ten, kdo by použil třeba stahování celých webových site, by se k těmto heslům dostal velice lehce ne?

Nebylo by třeba vhodnější ty hesla uložit do nějakého adresáře, nastavit htacces, a hesla šifrovat např. pomocí Md5 a ty ty pak vkládat do té proměnné k ověření..

Nebo co by jste navrhovali vy?
Díky za každou radu.
Petyk
Profil
pokud ty soubory budes ukladat s takovou priponou aby prosly php parserem, tak se nemusis niceho bat.
gardener
Profil
Takze php? A co když někdo stáhne celou websote, nejspíše mu to stáhne jen html soubory ale co když bude k dispozici nástroj, který stáhne celou strukturu i s PHP soubory?
Nebo je to opravdu takto bezpečné?
Timy
Profil
gardener
ale co když bude k dispozici nástroj, který stáhne celou strukturu i s PHP soubory?
Takový nástroj neexistuje, musel by se dostat na FTP. Z hlediska http žádné PHP neexistuje: prohlížeč pošle http požadavek na server, ten řekne hej, podívá se, co by měl vrátit, zjistí, že se jedná o PHP, tak ho nechá zpracovat PHP parserem a z tohoto parseru vyleze HTML, které http vrátí. O tom mezikroku, ve kterém se parsuje PHP, uživatel zpravidla neví, k uživateli se prostě jen dostane výsledné HTML (případně něco jiného -- obrázek, txt...).

Takže pokud máš ta hesla uložená v *.php souboru, tak se není čeho bát, pokud nemáš díru jinde nebo pokud se ti někdo nedostane na FTP.
gardener
Profil
O.K díky za vysvětlení..
igamenir
Profil
dotaz, jen tak pro ověření, že vím dobře, co vím - "nástroje na stahování website" myslím stahují jen soubory na které existuje odkaz od uživatele, ne? pokud tedy budou hesla uložena v jakémkoliv souboru, pokud na něj povede jen php, tak se není čeho bát, je to tak? (krom hackerů na ftp)
nebo existuje způsob jak vyvolat seznam souborů v adresáři i přes nastavený directoryindex?

jinak kódování hesla bych doporučoval asi obecně vždy, pokud nejsou tvoje, a to jednosměrně
je to slušnost, protože hodně lidí (včetně mě) používá jen několik málo hesel, které nastavuje všude a uživatel by se pak musel bát, že správce si to nekódované heslo přečte.

nicméně pokud ho musíš takto někde použít, tak ho kódovat nemá smysl, když ho php skryje a když už tak ne přes md5, base64 a podobné postupy, na které existuje jednoduchá funkce, protože pak je otázka pár vteřin poznat kódování a rozkódovat to.
bohyn
Profil
"nástroje na stahování website" myslím stahují jen soubory na které existuje odkaz od uživatele, ne?
Ano, ale ani v index.php neni ceho se bat (ze strany HTTP)
Timy
Profil
igamenir
když už tak ne přes md5, base64 a podobné postupy, na které existuje jednoduchá funkce, protože pak je otázka pár vteřin poznat kódování a rozkódovat to.
MD5 je hashovací funkce, z ní už zpátky heslo nevytřískáš.
pEeLL
Profil
Timy
MD5 je hashovací funkce, z ní už zpátky heslo nevytřískáš.
tak tohle bych rozhodne netvrdil. vytriskat heslo je jen otazka casu. lehci veci ti "dekoduje" http://www.md5crack.com/crackmd5.php
http://md5-db.com
atd atd

jinak to jde i pres programy napr md5cracker.
pokud by heslo melo do 6znaku a obsahovalo male pismena a cisla tak ho mas za tyden dekodovane
kdyz vezmu v uvahu ze vetsina lidi pouziva jen mala pismena tak heslo do 7 znaku mas nejpozdeji za mesic
(na beznem pc co dnes koupite za 5k systemem ze program vyzkousi vsechny kombinace)

nemluve o tom ze vetsina lidi vyuziva nejake smysluplne slovo takze staci vyuzit slovniky a je to mnohem mnohem rychleji.
nemluve o tom ze lepsi dekodovaci programy vyuzivaji lepsich systemu nez brute force
Timy
Profil
pEeLL
tak tohle bych rozhodne netvrdil.
Podle toho, jak to bereš. Máme-li k dispozici nekonečně mnoho času a alespoň jeden počítač, i tisíci znakové heslo zahashované tou nejlepší hashovací funkcí jednou rozlouskneš. Já to beru trochu jinak — pokud zahashuješ alespoň trochu rozumné heslo, není v praxi reálné, že vytřískáš zpátky ono heslo.

Mimochodem hashovací funkce si poradí s jakýmkoliv vstupním řetězcem, přičemž sama hashovací funkce ukládá třeba do 128 bitů. Je tedy zřejmé, že více „hesel“ bude mít stejnou výslednou hash. Všechny programy, které jsi uvedl, nenaleznou původní řetězec, nýbrž řetězec, který má čirou náhodou stejný výsledný hash. Ne nutně to musí být heslo (ačkoliv je to pravděpodobné).

A jinak jsem především reagoval na „je otázka pár vteřin poznat kódování a rozkódovat to“.
Leo
Profil
Petyk

"pokud ty soubory budes ukladat s takovou priponou aby prosly php parserem, tak se nemusis niceho bat"

Timy

"Takže pokud máš ta hesla uložená v *.php souboru, tak se není čeho bát, pokud nemáš díru jinde nebo pokud se ti někdo nedostane na FTP."


Krome pripony .php vrele doporucuju dat ten soubor mimo adresar webu, at se k nemu neda dostat z prohlizece. Jednou se mi stalo, ze i na ostrem komercnim webhostingu restartovali Apache tak, ze nebezel modul PHP a to je pak legrace :-) Leo

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0