Dynamic-Mess.com


"The world is a dynamic mess of jiggling things..."

Désactiver l’identifiant de session dans l'url

Article posté le 12-09-2014 dans la catégorie Web

Explications

Dans le cadre d'une application en interne, la presence, visible ou non, de l'identifiant de session dans l'url n'est pas trop grave, car aucun robot de moteur de recherches de viendra indexer ces pages. Cependant en ligne, c'est la porte ouverte à la catastrophe SEO.

En interne, pour une application, cela peut cependant poser problème en cas de copier/coller de l'url d'un collaborateur à l'autre.

De plus, c'est une faille de sécurité.

Afin de se passer de ce genres d'inquiétudes, vous pouvez :

A noter qu'il est recommandé de refuser les utilisateurs dont le navigateur n'accepte pas les cookies dans ces cas-là...

Interdiction

En PHP :

ini_set('session.use_trans_sid', false);

Au passage autorisez l'utilisation des cookies à la place :

ini_set('session.use_cookies', "1"); 

et n'autorisez que les cookies :

ini_set('session.use_only_cookies', "1");

Parfois, l'id de session est ajouté au contenu HTML généré. Il faut s'en prémunir :

ini_set("url_rewriter.tags",""); 

Vous pourrez alors démarrer la session!

Par le htaccess :

SetEnv SESSION_USE_TRANS_SID 0

Par le fichier php.ini :

session.use_trans_sid = 0

Enfin, voici une méthode en PHP pour détecter les robots et adapter le comportement en fonction...

function checkIsRobot(){
  $_UA = array("GoogleBot", "Slurp","MsnBot");
  // C'est un tableau, rajoutez tous les robots que vous désirez détecter
  foreach($_UA as $ua) {
    // Comparaison du user agent du visiteur à notre liste précitée
    if(eregi($ua,$_SERVER["HTTP_USER_AGENT"])) return true;
  }
  // Sinon, pas détecté :
  return false;
 }
?>

On appelerait la méthode comme ceci :

if (!checkUaRobot()) { session_start(); }

Voilà. Si vous avez d'autre solutions ou vous souhaitez ajouter des languages, allez-y!

 


Cet article vous a plu? Découvrez d'autres articles


Tweet
comments powered by Disqus