Hirdetés

Keresés

Új hozzászólás Aktív témák

  • Sk8erPeter

    nagyúr

    válasz LW #6311 üzenetére

    Előző kommentekhez hozzáfűzve:
    ha már JS-függő site, és cikkírások, akkor érdemes megfontolni azt a megoldást is, amit a Gmail és pl. akár a stackoverflow is alkalmaz: levél/hozzászólás/... írása esetén időszakos mentéseket készít az addigi piszkozatról, így nem vész el az irományod. Gmailnél mondjuk meg is marad véglegesen. Felhasználóhöz kötve tehát érdemes lehet piszkozatot is készíteni bizonyos cikkekről, így később is folytatható, valamint nem vész el - legalábbis nem teljesen, ha közben lejár a munkamenet. Természetesen a legjobb megoldás az, amit mostanában Neptunnál is alkalmaznak végre, hogy a munkamenet lejárta előtt figyelmeztet annak lehetséges megújítására - ha 1 percen belül nem kattintasz arra a gombra, ami ezt elintézi neked, akkor kiléptet; na, a kiléptetés előtt lehetne közvetlenül piszkozatként elmenteni a cikket.
    Manapság az AJAX-os megoldások szerintem elkerülhetetlenek, nagyságrendekkel felhasználóbarátabbá és akár programozói szempontból is kényelmesebbé tehetik az oldalakat (a programozói szopásoktól most eltekintve :D).

  • Tele von Zsinór

    őstag

    válasz LW #6311 üzenetére

    Ahogy előttem is írták: a munkamenet hosszát az alkalmazás határozza meg - komolyabb biztonságnál egyértelműen rövidebbre érdemes venni, a php alapbeállítása (1440 másodperc - 24 perc) egy elég jó arany középút. Ritkán tartom szükségesnek állítani.

    Az "emlékezz rám" megoldások nem a session idő megnövelésével működnek, hanem plusz egy sütivel, ami mondjuk él egy hétig, és egyértelműen köthető egy felhasználóhoz. Az egyszerű megoldás az, ha ennek meglétét a bejelentkező oldal vizsgálja, ha létezik és érvényes, akkor rögtön továbbít is anélkül, hogy látnád a login formot.

    Előfordulhat olyan helyzet, hogy egyetlen oldalon (vagy egy páron - az alkalmazásod méretéhez képest kevés helyen) kell hosszabb munkamenet, erre egy kerülőút: egy, csak azokon az oldalakon behúzott javascript, ami párpercenként egy ajax kéréssel a háttérben életben tartja a sessiont, mondjuk ötpercenként egy kéréssel legfeljebb 12 alkalommal, az plusz egy óra. Például az említett cikkírós oldalra jól jöhet, cserébe innentől JS-függő az alkalmazásod. Mai világban nem tragédia, cserébe ne feledd figyelmeztetni az ilyenre a felhasználót egy jól elhelyezett noscript taggal.

    Adatbázisban tárolás, erről megoszlanak a vélemények, kap hideget is, meleget is. Akkor tagadhatatlanul hasznos, ha több gépen elosztva van az alkalmazás egy load balancer mögött, ilyenkor kénytelen vagy valami központi megoldást használni, amúgy bőven jó a php.ini-ben beállított, általában fileban történő mentés.

    IP, useragent ellenőrzés. Ismét azt mondom, hogy a szükséges biztonsági szint a fő meghatározó, de: a useragent ritkán változik, az ipvel viszont vigyázz: az országban is több szolgáltató van, aminél több user van egy ip mögött, esetleg bonyolítva azzal, hogy egy user ipje is változik kérésről kérésre attól függően, melyik proxy épp van legkevésbé terhelve.

    Saját hash generálás felesleges, de amikor változik az authentikációs szint (be- és kijelentkezés, plusz jog kiadása vagy annak elvétele) érdemes egy session_regenerate_id() hívást intézni, ez elég jó védelem a session fixation támadások ellen.

  • RedSign

    tag

    válasz LW #6311 üzenetére

    Szia!

    Hát a fő kérdés szerintem, hogy mi az oldal célja és mekkora szintű biztonságra van szükséged? (minél nagyobb annál kisebb időre és annál gyakoribb megújításra). Sok trükköt lehet alkalmazni, a kérdés, hogy szükséges-e az adott oldalhoz? :F Persze nem tagadom minél biztonságosabb valami annál jobb... :C

    Üdv,
    RedSign

Új hozzászólás Aktív témák