jeudi 4 août 2011

Les attaques de fixation de session


  Le protocole HTTP crée une session pour retenir certaines informations concernant l’utilisateur lors de la navigation. Celle-ci peut être la cible d'attaques pour pouvoir usurper l'identité du visiteur connecté et se faire passer pour lui en lui "volant" sa session.
  Dans un site programmé en PHP, tous les utilisateurs sont vulnérables s'il utilise seulement session_start(). Si le hacker est capable de récupérer l'ID de votre session active, il pourra l'utiliser en l'initialisant par la querystring (page.php?PHPSESSID=identifiant).
  Pour contrer cette vulnérabilité, on peut utiliser la fonction built-in de PHP session_regenerate_id() qui génère un nouvel identifiant de session lors de la vérification de l'initialisation.

<?php
session_start();

if( !isset($_SESSION['initialized']) ) {
  session_regenerate_id();
  $_SESSION['initialized'] = true;
}
?>

À la fin, assurez-vous aussi de détruire la session, que ce soit par un mécanisme de déconnexion ou par une expiration forcée par le serveur (voir php.ini ou ini_set).

<?php session_destroy(); ?>

mercredi 3 août 2011

Pourquoi le userid du premier user sur joomla commence toujours par 62 ?


Si vous venez d’installer Joomla pour la première fois vous remarquerez que id du user administrator commence par 62 et non pas par 1 pourtant le champ est AUTO_INCREMENT  

Pourquoi le champ ne commence pas par 1 ??

Ce calcul explique tout:

a   d    m   i    n   i    s    t    r   a    t    o    r

1 + 4 + 13 + 9 + 14 + 9 + 19 + 20 + 18 + 1 + 20 + 15 + 18 =

1 + 4 +  4 + 9 +  5 + 9 +  1 +  2 +  9 + 1 +  2 +  6 +  9 = 62