Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Autologowanie
Forum PHP.pl > Forum > PHP
Athlan
Jestem ciekaw, jak rozwiązaliście problem autologowania w Waszych aplikacjach. U mnie wygląda to tak, że jeżeli użytkownik nie jest zalogowany, sprawdzane jest jego ciasteczko w którym zapisane są dane:
Kod
id_usera,haslo_md5

nie jestem pewien bezpieczeństwa swojego sposobu. Dodam jeszcze skromny kod:

  1. <?php
  2.  
  3. class autologin_Vapplet extends Vapplet
  4. {
  5. public function index_Action()
  6. {
  7. throw new VappletException('Hmmm !');
  8. }
  9.  
  10. public function Autologin_Action()
  11. {
  12. $oUser = new Vuser();
  13.  
  14. if(!$oUser->isAuth())
  15. {
  16. $oInput = new Vinput();
  17.  
  18. $aCookieAuth = explode(',', $oInput->cookie('auth'));
  19.  
  20. $sAuthId = $aCookieAuth[1];
  21. $sAuthPs = $aCookieAuth[0];
  22.  
  23. if($sAuthId && $sAuthPs)
  24. {
  25. $oModel = $this->setModel('user');
  26.  
  27. $aUserData = $oModel->getUser($sAuthId);
  28.  
  29. if($aUserData['user_pass'] == $sAuthPs)
  30. {
  31. $oUser->setAuth(true);
  32. $oUser->name = $aUserData['user_name'];
  33. $oUser->id = $aUserData['user_id'];
  34.  
  35. if($aUserData['user_admin'] == 'y')
  36. $oUser->setGroup('administrator');
  37. }
  38. }
  39. }
  40. }
  41.  
  42. public function SetCookie_Action()
  43. {
  44. setCookie('auth', $this->pass . ',' . $this->user, (time() + (60 * 60 * 24 * 14)), '/');
  45. }
  46.  
  47. public function HasCookie_Action()
  48. {
  49. $oInput = new Vinput();
  50. return $oInput->cookie('auth');
  51. }
  52.  
  53. public function DeleteCookie_Action()
  54. {
  55. setCookie('auth', '', time()-3600, '/');
  56. }
  57. }
  58.  
  59. ?>
Łukasz O.
jak chcesz być pwewien bezpieczeństwa to nie zezwalaj na autologowanie winksmiley.jpg jeśli działasz na ciasteczku to co mnie powstrzyma przed przechwyceniem czyjegoś ciastka i użyciu go do logowania? sprawdzasz zgodność IP? albo chociaż przeglądarkę?
Athlan
Temat bezpieczeństwa ciasteczek był już wałkowany kilka razy. Jeżeli jesteśmy w tej samej sieci i nie posiadamy każdy z osobna publicznego IP, wówczas mogę użyć Twojego konta. Z przeglądarką to samo, nawet jeżeli połączymy obie rzeczy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.