Přihlašování pomocí sessions - bezpečnost

13 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Zdravím, všechny, ve svém posledním vlákně jsem tohle téma už trochu nakousnul, ale raději bych je ještě jednou poradil s ostatními: půjde o RS s přihlášením pro jediného uživatele, a já bych vás poprosil o rady a případné odhalení brouka. hlavně, jestli je alespoň trochu to bezpečné :) přihlašovací skript: http://mike.webzdarma.cz/files/login.phps funkce, kt. to kontroluje v administraci: function check_user() { $udaje = mysql_fetch_row(mysql_query("SELECT `heslo` FROM `e_nastaveni` WHERE `id` = 1")); if (!isset($_SESSION['prihlasenej']) || $_SESSION['prihlasenej'] != $udaje[0]) { $uri = explode("/admin/", $_SERVER['REQUEST_URI']); if (empty($uri[1])) { $uri[1] = "index.php"; } header($_SERVER['SERVER_PROTOCOL'] . " 401 Unauthorized"); header("Location: ../login.php?redirect=" . urlencode($uri[1]) . ""); die(); } } nastavení: php_flag register_globals off php_flag allow_url_fopen off php_flag magic_quotes_gpc on php_flag magic_quotes_sybase off php_flag magic_quotes_runtime off php_flag session.use_only_cookies on php_value session.cookie_lifetime 3600 error_reporting(E_ALL); Díky, Mike ;-)
  2. error_reporting(E_ALL); hned jedna "chyba" :) přesměrování se stavovým kódem se dá pořešit i jednou hlavičkou. Doufám, že to nezblbnu: header("Location: 401 file.php?..."); Btw, je lepší, když v Headeru uvádíš absolutní adresy. Já to sice taky většinou nedělám, ale ... ;) Jinak jsem na to ještě nekoukal, ale: použití sezení je celkem bezpečné, pro zvýšení bezpečnosti se dá u důležitých operací použít regeneraci sessID. Večer ještě možná mrknu na ten tvůj kód a připíšu víc :)
  3. stydím se... založím vlákno, a zapomenu na něj :) systém už jsem nasadil, a s tím vylezly na povrch další problémy... myslel jsem, že když nastavím ukládání sessid pouze do cookies, že to bude fungovat... jenže google už mi indexuje stránky se škaredám PHPSESSID v url... (google => site:mike.webzdarma.cz) ... nějaká banální chyba? dále bych se chtěl zeptat, jak ošetřit následující error: "Notice: session_start(): ps_files_cleanup_dir: opendir(/tmp) failed: Permission denied (13) in /3w/webzdarma.cz/m/mike/config.inc.php on line 48" konfig, lajna 48 je sešn_start(); tímto soubor končí, předchází mysql_query("SET NAMES cs-utf8"); a připojení k db. » Tom: pokud se na to ještě podíváš, budu rád ;-) a na přihlašovací skript se můžeš už i 'podívat v akci' :) předem díky, Mike
  4. Systém zaznamenal 3 pokusy o přihlášení do administrace s negativní odpovědí. Pech... Pamatuj si heslo! Hodně dobrá hláška! Nemáš jich víc? Nějaké by se mi hodily ;) Jinak bych to moc nehrotil, přidej tam session_regenerate_id() a bude to víc než dobrý.
  5. ahoj, je to OT, ale píšu ti to sem, nevěděl sem, jak napsat do tvojí knihy návštěv. mam MSIE 5.01 a rozlišení 800x600 budů a ten web moc dobře nejde číst :) mluvim o mike.webzdarma.cz screenshot: http://nesro.wz.cz/mike.jpg ^_^
  6. » Tom: jednu mám třeba tady: mike.webzdarma.cz/2008/01/ ale jinak už moc ne... :) session_regenerate_id() přidám, díky. » Nesro: sice OT, ale ne úplně... dík. v čem je problém tuším, ale přecejen MSIE 5 sem ve statistikách toplistu snad ještě neviděl, takže nevím... jde o to, že IE 5 pravděpodobně nebere rozměry body. když se podíváš do kódu a do stylů, tak div budeš hledat těžko... (1 kvůli banneru, jeden genrovaný wz reklamou, další generovaný RSSad, a pouze jeden v lay-outu (divy pro výpis zdrojáku nepočítam, ty nemaj s rozvržením co dělat)) html { /* zde je to, co se normálně dává pro body */ } body { margin: 0 auto; text-align: left; width: 710px; padding: 10px 0 10px 0; } a tyto řádky se IE5 zjevně nelíbí... to možná budu řešit na úrovni php printnutím dalšího divu, ale uvidím, jak to půjde. PS.: kniha návštěv nějak nefunguje, nebo proto, že se v tom dalo špatně vyznat? PPS.: dělá to aj 5.5, takže jdu opravovat... :)
  7. tak, teď píšu ze školy (supa kompy ;) ) je tu FF a ten web vidím dobře (doma sem se na tátovym pc nekoukal) .. cu ti pochválit ten web, je to fakt dobrá práce.. ad kniha: myslím, že by 'bohatě' stačilo, dá do formuláře dole záložku a odkaz na tu záložku hodit na začátek knihy, -> takže návštěvník by přišel - chctěl napsat do knihy - uviděl odkaz přidat do knihy - kliknul na to - hodilo ho to 'dolu' a byl by klid... ^_^
  8. »: nesro: function msie5_sucks($div1, $div2) {   if(ereg("MSIE[[:blank:]]5",$_SERVER['HTTP_USER_AGENT'])) {     print $div1 . $div2;   } } IE5 vyřešeno výše uvedenou funkcí :) proč ale nevykresluje rámečky a nepřidává paddingy inline-elementům netuším, a to už fakt řešit nebudu... PS.: zatím jsem ale pořád nepřišel na to, jak ostranit výše uvedenej warning jinak, než změnou error_reporting levelu... googlil sem, našel jednu zmínku o tom, že to dělá wz, a x moc stránek, který tu chybu obsahujou / obsahovaly namísto vyřešení problému... (no jako vždy, když hledám význam chybové hlášky)
  9. krásně pojmenovaná funkce :)
  10. AHoJ. Dovolil bych si tvrdit, že pokud se v URL objeví PHPSESSID přihlášeného uživatele a ten uživatel klikne na odkaz na té stránce, který povede na moji stránku, tak budu schopný přečíst heslo z proměnné $_SESSION['prihlasenej'] Je to sice nepravděpodobná šance... ale možná bych si dokázal poradit. Je také možné, že na začátku skriptu je nastaveno něco, co zde není uvedeno a může to bránit právě přečtení obsahu session. Tak jen tolik zatím.
  11. Elektrostraka:  hm ... zajímavá teorie ;)  myslím, že jediné, co by se ti mohlo povést je přesvědčení serveru, že zrovna ty jsi přihlášený uživatel. Ale to by jsi to musel zjistit v době, kdy je uživatel aktivní. Tudíž: http://cz2.php.net/session_regenerate_id   nebo odstranit příčinu: php_value session.auto_start off
  12. Elektrostraka: a) PHPSESSID v url už se neobjevuje :) b) session_regenerate_id tam také je :) c) pokud by si nějakým zázrakem heslo z hodnoty sessid přečetl, troufnu si říct, že z jeho zašifrované podoby by si moc moudrý nebyl ;-) PS.: omlouvám se za vyhrabávání tohoto vlákna, ale odpovědí ze 17.10. jsem si všiml až teď... PPS.: problém z // 02. 10. 2007 00:11 // vyřešen @session_start() - ač nerad, jiné řešení jsem nenalezl.
  13. PPS.: problém z // 02. 10. 2007 00:11 // vyřešen @session_start() - ač nerad, jiné řešení jsem nenalezl. Jiné řešení taky neexistuje. Je to nějaká chyba v časoprostorovém kontinuu na WZ ;)

← Zpět na všechna témata