Sécuriser les sessions [Résolu]

Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 17 nov. 2014 à 11:59 - Dernière réponse : jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention
- 17 nov. 2014 à 22:30
Bonjour ici :) ,

Je me forme en ce moment au PHP.

Du coup forcement je regarde un peut la sécurité. Et je cherche à éviter le vol de session (enfin j'apprends quoi ^^)

Ce genre de chose vous paraît correct et suffisant d'un point de vue générale ou non ;
 if (!isset($_SESSION['IP_CLIENT']))
{
$_SESSION['IP_CLIENT'] = $_SERVER['REMOTE_ADDR'];
}
else
{
if ($_SESSION['IP_CLIENT'] != $_SERVER['REMOTE_ADDR'])
{
//Vole de session ! (interdi l'IP client, envois de mail, ...)
}
}


Merci d'avance
Afficher la suite 

Votre réponse

14 réponses

jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 17 nov. 2014 à 13:04
Commenter la réponse de jordane45
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - Modifié par Polack77 le 17/11/2014 à 14:09
0
Merci
Merci, j'avais déjà consulté le 1er lien mais je découvre le second.

Bon en résumé, sécuriser les sessions ce n'est pas si facile :/

Les changements d'IP (cher OAL notament, évoqués dans le second lien) sont une réalité "vrais", ou son plutôt anecdotique ?

Sinon le coup des tickets, ça me plais pas mal.
Ca ne posera vraiment pas de soucis si mon visiteur fait "précédant" ? Je ne pense pas que cela affecte les cookies, dans le doute je préfère demander ^^ (encore débutant en PHP).
Commenter la réponse de Polack77
jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 17 nov. 2014 à 14:18
0
Merci
si mon visiteur fait "précédant" ? Je ne pense pas que cela affecte les cookies, dans le doute je préfère demander

Ca ne modifie les cookies "que" si la page consultée contient du code qui les modifie....
Dans le cas contraire..ça n'a aucune incidence.

Comme indiqué dans beaucoup de discussions... le vol de cookie est quelque chose d'assez rare (car assez compliqué à mettre en place... puisqu'il faut "intercepter" la connexion de l'utilisateur)...;
Mais pour assurer une bonne "protection" à ton site.. le mieux est de passer par du SSL (crypter toute ta session en bref)...

L'utilisation de variables ( IP .. autre Cookie...) pour essayer de controler que la session appartient bien au bon utilisateur n'est de toute façon pas "sûre" .. puisqu'il est possible de toutes les contourner ... émuler un fausse IP par exemple...


Comme conseillé dans de nombreux sujets relatifs à la sécurité... il vaut mieux centrer tes efforts sur les failles XSS et l'injection SQL...Cela limite grandement les marges de manoeuvres des éventuels pirates.


Commenter la réponse de jordane45
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 17 nov. 2014 à 14:33
0
Merci
OK, j'avais compris que le SSL est ce qui ce fait de "mieux". Mais pour ce que je veux faire actuellement, ça serait utiliser un bazooka sur une mouche. Je n'ai pas de donnée confidentielle à gérer (bon sauf si un co_ d'utilisateurs utilise son N° de CB comme nom d'utilisateur ou mot de passe XD ). Mais je m'intéresse bien sûr au sujet.

La faille XSS, je l'ai écrit en gros, souligner, surligner, colorier, un vrai Sapin de noël celle ça.
Mais puisqu'on en parle, la fonction "htmlspecialchars" me suffisante (vue qu'elle remplace entre autres les carac < et >, ça me semble OK) . Et concernant l'injection de SQL (je n'ai pas encore potassé ce sujet par contre), ça fait le job ?

Merci encore de ton intérêt :)
jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 17 nov. 2014 à 15:17
Si la question est résolue..
Merci de ne pas oublier de clôturer le sujet
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 17 nov. 2014 à 15:19
J'arrive, j'arrive je relis le sujet voire si ne n'oublie vraiment rien ^^

Bonne fin de journée :)
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 17 nov. 2014 à 17:41
En finale j'ai quand même encore une toute petite question (je n'ouvre pas un nouveau sujet car tout ça est lié).
Dans le second lien que tu m'as donné : http://guillaume-affringue.developpez.com/securite/chiffrement/?page=4

Il y a une ligne qui attire mon attention :
$_COOKIE['ticket'] = $ticket;

Et ce n'est pas la 1re fois que je vois cette syntaxe.
L'utilisation de la fonction setcookie n'est pas obligatoire ? Soit :
setcookie('ticket', $ticket);


(j'avoue que si les deux syntaxes étaient correctes, étant de formation C/C++ à la base, ça me piquerait les yeux une nouvelle fois. Mais je reconnais aussi qu'une des syntaxes est très pratique d'utilisation et que l'autre est très souple, donc je pardonne d'avance cette hérésie, enfin si elle existe bien ^^)
---
n.b. message corrigé suite à la réponse de jordane45 ;)
jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 17 nov. 2014 à 17:59
Les variables de SESSION sont gérés automatiquement par PHP (et ton navigateur) qui "vivent" tant que l'application est ouverte ( ou tant que tu ne les supprime pas).
alors que les cookies peuvent vivrent au delà ... puisque tu définis leur durée de vie...(via le paramètre "EXPIRE" )
Et donc, pour affecter une valeur à une variable de SESSION... il faut, en effet, utiliser la syntaxe :
 $_SESSION['nom_variable'] = uneValeur 


Sachant que les Cookies sont stockés sur le DD de l'utilisateur... alors que les SESSION sont stockées sur le serveur.
( la durée de conservation des variables de session pouvant être définie dans les paramètres du serveur... par défaut c'est environ : Jusqu'à la fermeture du site + 30 minutes )

Plus d'infos ici :
http://php.developpez.com/cours/sessions/?page=page_2
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - 17 nov. 2014 à 18:03
Ba voilà, j'ai écrit trop vite et je me suis loupé. Donc forcément tu n'as pas compris la question ^^
La ligne qui attire mon attention est ;
$_COOKIE['ticket'] = $ticket;
Commenter la réponse de Polack77
jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - Modifié par jordane45 le 17/11/2014 à 21:15
0
Merci
Donc là ..oui c'est en effet étrange comme écriture...
ça stockera bien la variable $ticket dans la variable $_COOKIE ... mais ça ne l'écrira pas sur le poste du user (à vérifier.. mais je ne pense pas me tromper)....

EDIT : En fait, c'est utilisé pour forcer la variable globale $_COOKIE le temps que tu lances une nouvelle "requete" php
Sinon ta variable ne sera pas initialisée (celle que tu envoies via setCookie) tant que tu n'auras pas rechargé la page)

Tu peux tester ça par exemple:
$valeur = "coucou" ;
// on stocke la valeur dans le cookie : test
setcookie('test', $valeur, time()+60*30);

if(isset($_COOKIE['test']) && !empty($_COOKIE['test']){
 // le cookie existe bien :
 echo "<br> Il devrait contenir : ".$test;
 echo "la valeur actuelle du cookie est :".$_COOKIE['test']."<br>";
}else{
 echo "le cookie test est n'existe pas ou est vide !<br>";
 // on charge le cookie avec la valeur : $test
 $_COOKIE['test'] = $test;
 echo "<br> Maintenant  la valeur du cookie est :".$_COOKIE['test']."<br>";
}
Commenter la réponse de jordane45
Polack77 1100 Messages postés mercredi 22 mars 2006Date d'inscription 15 avril 2018 Dernière intervention - Modifié par Polack77 le 17/11/2014 à 22:32
0
Merci
Désolé pour la réponse tardive.

OK, donc si on veut la variable sur la page courante ET sur la/les page/s suivante/s faut faire les deux. Il me semblait bien aussi que c'était pas normal ^^.

Je commence à me sentir armé niveau sessions et cookies (vus la qte de doc avalées ça serait dommage quand même ^^). Et tu m'auras bien aidé, que la farce soit avec toi (oui ce soir c'était tomates farcies maison, alors forcément des séquelles sont là XD)
jordane45 22872 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 17 octobre 2018 Dernière intervention - 17 nov. 2014 à 22:30
Tu auras fait un bon repas aujourd'hui.. tomates farcies + des tonnes de cookies... attention à l'indigestion ;-)

Bonne soirée.
Commenter la réponse de Polack77

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.