Autor | Zpráva | ||
---|---|---|---|
xmas Profil * |
#1 · Zasláno: 7. 12. 2007, 12:03:42
Dobrý den,
náhodou jsem narazil na tenhle článek: [url=http://diskuse.jakpsatweb.cz/index.php?action=vthread&forum=9&top ic=53097][/url] a pokusil jsem se udělal podle Alphard, který navrhoval odeslání dvou emailů při změně hesla. Dostal jsem se, když se uživateli odešle email, chtěl bych, aby odkaz byl platný 24h. Pro ty co nechtějí číst předchozí odkaz: Posílám přes email odkaz a chci, aby ten odkaz byl aktivní 24h, tedy, pokud na něj uživatel klikne po 24h jakákoliv akce, která by měla nastat nenastane. Jak to udělat? Děkuju předem za rady |
||
NetHill Profil |
#2 · Zasláno: 7. 12. 2007, 12:12:09
Ten tvůj odkaz:
Téma neexistuje. Buď bylo vymazáno administrátorem nebo vůbec neexistovalo. Návrat zpět |
||
nightfish Profil |
#3 · Zasláno: 7. 12. 2007, 12:22:07
NetHill
ale existuje xmas uděláš to třeba tak, že si do databáze uložíš kód, který je v odkazu, který jsi poslal mailem a k němu buď datum odeslání nebo datum platnosti a pak když někdo klikne na odkaz na změnu hesla, tak se v db zkontroluje, jestli už vypršela doba, po kterou měl být dotaz aktivní... |
||
xmas Profil * |
#4 · Zasláno: 8. 12. 2007, 10:14:50
tím kódem myslíš co?
podle toho co píšeš: $extime = $time + 60x60x24; odkaz by pak vypadal takhle: http://www.example.com/?login=xmas&extime=$extime a pak kontrolovat podle db ale jak zabránit člověku, který se dovtípí, aha, tak extime je unixovej timestamp tak si "udělám" unixovej timestamp, který bude odpovídat a změním stejně si heslo? |
||
BetaCam Profil |
#5 · Zasláno: 8. 12. 2007, 10:24:34
xmas
Pochopil si to špatně nightfish zdřejmě myslel, že v DB budeš mít uložení nejaký unikátní klíč a čas expirace. Tedy něco jako : key : 68as4g616fj4d684hn6d1fb6s8fzj76g4 endtime : čas kdy odkaz vyprší odkaz bude vypadat : http://www.example.com/?login=xmas&key=68as4g616fj4d684hn6d1fb6s8fzj76 g4 no a na té stránce vlezeš do databáze pokud bude now() menší než endtime změníš heslo a pokud nebude tak heslo nezměníš. |
||
xmas Profil * |
#6 · Zasláno: 8. 12. 2007, 10:26:42
chápu, perfektní, děkuju
|
||
xmas Profil * |
#7 · Zasláno: 9. 12. 2007, 23:30:56
doufám, že nebude vadit, když obnovím tohle vlákno, ale dostal jsem se k tomu až teď a chtěl bych se ještě zeptat jestli stačí "key" ,který tedy budu brát pomocí get, projet funkcí preg_replace..tedy takto:
$key = $_GET['key']; $tkey = preg_replace('/([^A-Za-z0-9]+)/','', $changecode); a pak už fungovat z databází, abych zabránil sql injection? |
||
BetaCam Profil |
#8 · Zasláno: 10. 12. 2007, 10:01:21
Hodnotu key by si měl ošetřit stejně jako všechny vstupy od uživatele. Jak to uděláš už je na tobě :)
|
||
xmas Profil * |
#9 · Zasláno: 10. 12. 2007, 11:00:11
Jak to uděláš už je na tobě :)
já vím, proto se ptám, jestli tohle je dostačující?:-) |
||
BetaCam Profil |
#10 · Zasláno: 10. 12. 2007, 11:26:36
Čistě teoreticky : Ano.
|
||
xmas Profil * |
#11 · Zasláno: 10. 12. 2007, 13:01:40
jak by si to řešil ty?
|
||
BetaCam Profil |
#12 · Zasláno: 10. 12. 2007, 13:24:10
No já bych to řešil cestou na kterou sem zvyklej a kterou běžně používám.
1. všechny data od uživatele slashuju 2. kontroluju URI na zakázané znaky. Pokud se tam vyskytne znak kterej je zakázanej okamžitě přichází na řadu exit() ale to je jen moje síla zvyku. Ty by si měl vědět jakym způsobem ošetřuješ data od uživatele :) |
||
xmas Profil * |
#13 · Zasláno: 10. 12. 2007, 15:16:33
já vím jak to dělám, ale to neznamená, že je to bezpečný:-) díky
|
||
BetaCam Profil |
#14 · Zasláno: 10. 12. 2007, 15:33:26
No bezpečný neni v dnešní době ani se nadechovat a vydechovat :)
|
||
Časová prodleva: 16 let
|
0