Zadejte hledaný výraz...

Nette – přepis hesla v DB

Tomáš Bláha
verified
rating uzivatele
23. 6. 2015 20:10:10
Zdravím,
připadla mi na starost "správa" projektu, který je psaný v Nette.
Hodlám se ponořit do učení se, ale momentálně mi hoří změna hesla.
Web nemá vytvořenou registraci ani správu profilu v Backendu, čili heslo je napevno zapsané v DB a potřeboval bych vědět, jakým algoritmem Nette hesla vytváří, resp. ověřuje, abych si mohl vygenerovat někde mimo nové a přepsat ho.
Díky moc!
23. 6. 2015 20:10:10
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121492
Nette není systém, tudíž jak se hesla vytváří je čistě na programátorovy. Ale pokud byl programátor chytrý, tak využil NetteSecurityPasswords které slouží k práci s hesly.
Třída NetteSecurityPasswords obsahuje tyto základní funkce:
hash|Pro šifrování hesel
verify|Pro kontrolu hesla
23. 6. 2015 20:31:03
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121491
tomve
verified
rating uzivatele
(22 hodnocení)
23. 6. 2015 21:11:51
na třída defacto používá funkci http://php.net/function.password-hash
23. 6. 2015 21:11:51
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121490
Tomáš Bláha
verified
rating uzivatele
23. 6. 2015 22:11:18
A existuje tedy nějaký jednoduchý způsob, jak bez psaní v Nette ono heslo vytvořit?
23. 6. 2015 22:11:18
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121489
To záleží jakým hashem je to vytvořené.
Ale převážně v přihlašovacím modelu je i třída Authenticator, která by měla mít zapozdřenou metodu AddUser, nebo tak nějak. No a tu si kdekoliv v systému zavoláte, a vytvoříte uživatele. A nebo pokud jde vám jen o heslo, tak si zavolejte v BasePresenteru NetteSecurityPasswords::hash(1234); to si dumpněte, a kdekoliv na webu se vám vypíše zahašované heslo.
23. 6. 2015 22:51:21
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121488
Fido123
verified
rating uzivatele
(13 hodnocení)
23. 6. 2015 23:05:47
Napsal Tomáš Bláha;1204505
A existuje tedy nějaký jednoduchý způsob, jak bez psaní v Nette ono heslo vytvořit?
Pokud znáš staré heslo, můžeš zkusit nějaký online tool pro hashování a porovnat výsledky různých algoritmů s tím řetězcem, co máš v databázi. No a jestli bude nějaký z těch algoritmů sedět, tak jím protáhneš nové heslo a výsledek vložíš do databáze.
23. 6. 2015 23:05:47
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121487
Fido, to je velmi hloupé řešení, jelikož mnoho programátorů když zvolí hloupí a rychlí hašovací algoritmus md5 nebo sha1 a ještě bude v kódu solit, tak nikdy přes tyto online generátory nevygeneruje správný heš.
Ale jak jsem již zmiňoval #2, ještě ani nevíme jaký algoritmus využívá pro „správu hesel.“ Proto bych spíše doporučil jedno z řešení které jsou zakomponovány v #5.
23. 6. 2015 23:55:11
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121486
Fido123
verified
rating uzivatele
(13 hodnocení)
24. 6. 2015 00:00:07
Napsal filipsedivy;1204548
Fido, to je velmi hloupé řešení, jelikož mnoho programátorů když zvolí hloupí a rychlí hašovací algoritmus md5 nebo sha1 a ještě bude v kódu solit, tak nikdy přes tyto online generátory nevygeneruje správný heš.
Jistě. Ale proč by to kvůli tomu mělo z mé odpovědi na otázku dělat velmi hloupé řešení?
24. 6. 2015 00:00:07
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121485
Jelikož, pokud využívá NetteSecurityPasswords, tak by si celou hešovací funkci musel přepsat do čistého skriptu, jelikož tato třída má nějaké své rodiče, pokud se nepletu. Tak že by to bylo na dalších x hodin, kdy by musel přepsat samotnou funkci, a izolovat z NetteUtilsRandom funkci generate, která může mít další rodiče či předky. Proto je lepší využít v Nette nástroje k tomu již určené.
24. 6. 2015 00:06:11
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121484
Fido123
verified
rating uzivatele
(13 hodnocení)
24. 6. 2015 00:17:30
Napsal filipsedivy;1204557
Jelikož, pokud využívá NetteSecurityPasswords, tak by si celou hešovací funkci musel přepsat do čistého skriptu, jelikož tato třída má nějaké své rodiče, pokud se nepletu. Tak že by to bylo na dalších x hodin, kdy by musel přepsat samotnou funkci, a izolovat z NetteUtilsRandom funkci generate, která může mít další rodiče či předky. Proto je lepší využít v Nette nástroje k tomu již určené.
Podívej, já jsem mu na otázku, jak bez použití Nette změnit heslo odpověděl, jak to se slušnou šanci zkusit udělat během minuty. Čemu pořád nerozumíš?
24. 6. 2015 00:17:30
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121483
Já se snažím eliminovat další otázku typu: „Proč mi daný heš nefunguje?“, „Vygenerovaný heš je kratší než v databázi...“
Ale v pořádku, podpořím tvou myšlenku. Udělej si to přes nějaký web, který je udělaný na to aby sbíral hesla a následně rozvíjel databázi pro následné dešifrování hesel. Tudíž hešovat heslo přes webovou stránku = říci své heslo do světa. GoodLuck
24. 6. 2015 00:23:35
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121482
Tomáš Bláha
verified
rating uzivatele
24. 6. 2015 21:50:14
Děkuji moc za rady, asi se ptám opravdu hloupě, ale řekli byste mi, co a kam vložit?
Opravdu si s Nette moc netykám, objektovému PHP jsem se prozatím přiblížil jen z dálky.
Ještě jednou děkuji moc
24. 6. 2015 21:50:14
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121481
Nette - přepis hesla v DB #5
24. 6. 2015 22:18:29
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121480
Tomáš Bláha
verified
rating uzivatele
25. 6. 2015 22:57:38
Omlouvám se, ale musíte na mě opravdu pomalu. Ve chvíli, kdy toto do basePresenteru NetteSecurityPasswords::hash(1234);
Dostávám error 500.
Nemusím přidat nějakou deklaraci use, nebo vložit do konkrétní metody?
Děkuji
25. 6. 2015 22:57:38
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121479
To je logický, toto jsou ale základy OOP, nikoliv Nette.
Tak že do složky app/presenters/ si vytvořte soubor HesloPresenter.php a do něj zaneste tento kód
Následně přejděte na adresu http:// -kde je nette-/heslo/heslo
Tak že vy přístoupíte na Heslo - presenter což je soubor HesloPresenter.php, s akcí heslo což je funkce actionHeslo()
kde se vypíše zahešované heslo 1234, a následně se přeruší běh stránky.
Ve výsledku, tedy budete mít jen vypsané heslo
25. 6. 2015 23:27:02
https://webtrh.cz/diskuse/nette-prepis-hesla-v-db/#reply1121478
Pro odpověď se přihlašte.
Přihlásit