2011-11-15 4 views
0

J'ai trouvé ma propre façon de protéger les modérateurs sur mon site. Premièrement, je sais qu'un pirate pourrait pirater ma session. Donc ce que j'ai fait était d'ajouter un cookie au modérateur et de définir mon algorithme sur la façon de configurer et de désactiver ces cookies.cookies, sessions et sécurité

D'abord, les précautions que je pris est quand les journaux de modérateur dans:

 if('Moderator'==is_monitor($name))//function finds who is the user 
     { 
      ini_set('session.use_only_cookies',true); 
      session_start(); 
      $password_hash = hash('sha256',$salt.hash('sha256', $pass)); 
      $_SESSION['mod_identify']=$password_hash; 
      if(!isset($_Cookie['adderss'])) 
      { 
       setCookie("adderss",$ip_address,time()+60*60*24*365*5,"/"); 
      } 

Ensuite, je l'utiliser pour réinitialiser les sessions sur chaque page:

if(!isset($_SESSION)) 
{ 
    start_session(); // all sessions should be reset with a new id 
} 

La question est de savoir si la fixation d'un cookie pour de nombreuses pages est un fardeau pour le modérateur?!?

Pensez-vous que mon chemin est assez sécurisé contre le piratage de session/cookie?

+1

Selon la [documentation] (http://php.net/manual/fr/language.variables.basics.php), les noms de variables sont sensibles à la casse. Autrement dit, '$ _Cookie' n'est pas la même chose que' $ _COOKIE'. – nickb

+0

Je sais..lolffff –

Répondre

4

N ° Utilisez HTTPS - qui utilise SSL - si vous voulez empêcher le détournement de session. En outre, ne stockez jamais le mot de passe du compte d'un utilisateur dans la session si c'est ce que $pass est.

Vous pouvez également utiliser une classe de wrapper de session telle que this one. Notez que cela ne protégera pas contre le détournement de session, mais cryptera simplement les données stockées dans celui-ci.

De même, sauf si vous avez créé votre propre fonction personnalisée nommée "start_session()", alors session_start() est la fonction que vous souhaitez appeler pour démarrer des sessions.

Si vous souhaitez rediriger les utilisateurs vers HTTPS, vous pouvez le faire avec mod_rewrite apache dans votre fichier .htaccess comme ceci:

RewriteCond %{REQUEST_URI} =/admin 
RewriteCond %{HTTPS} off 
RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI} 

Ou quelque chose de similaire, selon l'endroit où vous souhaitez que les utilisateurs utilisant des sockets sécurisés couche.

+0

lol ... c'est vrai. Le mot de passe est haché ... même si quelqu'un l'obtient, il ne servira à rien en essayant de se connecter. donc utiliser https est la seule solution, en utilisant 2 cookies n'est pas plus sécurisé? .. merci pour le code, j'ai déjà une de ces classes .. et les utilisera –

+0

HTTPS est l'homme. même si ce n'est pas un homme, c'est une machine. un peu comme le terminateur. JK. Ouais tu auras besoin d'utiliser HTTPS si tu veux vraiment protéger du piratage de session. –

+0

comment puis-je définir la session à https, je sais que pour mettre un cookie à https vous devez mettre 1 comme dernier argument dans la fonction set_cookie() –