0% ont trouvé ce document utile (0 vote)
4 vues10 pages

DOC4

Le copyright est un ensemble de règles juridiques protégeant les créations intellectuelles, permettant à l'auteur de contrôler l'utilisation de son œuvre. Le service d'authentification vérifie l'identité des utilisateurs avant d'accorder l'accès à des ressources, en utilisant divers types de vérifications. La régénération de l'identifiant de session en PHP est une pratique de sécurité pour prévenir les attaques de fixation de session.

Transféré par

Hassan OULEMKDM
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues10 pages

DOC4

Le copyright est un ensemble de règles juridiques protégeant les créations intellectuelles, permettant à l'auteur de contrôler l'utilisation de son œuvre. Le service d'authentification vérifie l'identité des utilisateurs avant d'accorder l'accès à des ressources, en utilisant divers types de vérifications. La régénération de l'identifiant de session en PHP est une pratique de sécurité pour prévenir les attaques de fixation de session.

Transféré par

Hassan OULEMKDM
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

c'est quoi copyright

Réponse rapide

Le copyright (en français : droit d’auteur) est un ensemble de règles juridiques qui protègent les
créations intellectuelles.

Concrètement, ça veut dire que :

 Quand quelqu’un crée quelque chose (texte, musique, film, image, logiciel, etc.),

 Il devient automatiquement le propriétaire de cette œuvre,

 Et personne ne peut l’utiliser, la copier ou la diffuser sans son autorisation (sauf exceptions
prévues par la loi).

Exemple simple :

Si tu écris une chanson ou prends une photo, elle t’appartient. Quelqu’un d’autre ne peut pas la
publier ou la vendre sans ton accord.

Ce que protège le copyright :

 Livres, articles

 Musiques

 Films et vidéos

 Photos et dessins

 Logiciels

Durée :

Le droit d’auteur dure généralement toute la vie de l’auteur + plusieurs années après sa mort
(souvent 50 à 70 ans selon les pays).

Si tu veux, je peux aussi t’expliquer les exceptions (comme le “fair use”) ou comment utiliser
légalement du contenu 👍

c'est quoi le service authentification

Le service d’authentification est un mécanisme qui permet de vérifier l’identité d’un utilisateur, d’un
ordinateur ou d’une application avant d’autoriser l’accès à une ressource.

Son rôle principal est de répondre à la question :

« Qui êtes-vous ? »

Exemple simple

Quand tu te connectes à un site avec :

 un identifiant ;

 un mot de passe ;

le système vérifie si ces informations sont correctes.


Cette vérification est réalisée par le service d’authentification.
Fonctionnement général

1. L’utilisateur envoie ses informations :

o login ;

o mot de passe ;

o parfois un code SMS ou une empreinte digitale.

2. Le service compare ces informations avec celles enregistrées.

3. Si elles sont correctes :

o accès autorisé ;

o création d’une session ou d’un jeton (token).

4. Sinon :

o accès refusé.

Types d’authentification

1. Par connaissance

Quelque chose que l’utilisateur connaît :

 mot de passe ;

 code PIN.

2. Par possession

Quelque chose que l’utilisateur possède :

 téléphone ;

 carte à puce ;

 token.

3. Biométrique

Quelque chose lié au corps :

 empreinte digitale ;

 reconnaissance faciale ;

 iris.

Authentification forte (MFA / 2FA)

Utilisation de plusieurs facteurs :


 mot de passe + code SMS ;

 mot de passe + application d’authentification.

Cela augmente la sécurité.

Exemples de services d’authentification

 Active Directory

 LDAP

 Kerberos

 OAuth

 SAML

 OpenID Connect

Différence entre authentification et autorisation

Authentification

Vérifie :

« Qui êtes-vous ? »

Autorisation

Détermine :

« Que pouvez-vous faire ? »

Exemple :

 tu es bien connecté → authentification réussie ;

 mais tu n’as pas le droit de supprimer des fichiers → autorisation refusée.

Services impactés en cas d’attaque sur l’authentification

Une attaque contre ce service peut affecter :

 confidentialité des données ;

 contrôle d’accès ;

 comptes utilisateurs ;

 applications web ;

 messagerie ;

 VPN ;
 bases de données ;

 systèmes d’administration.

Oui.
La fonction PHP session_regenerate_id(); change généralement la valeur du cookie PHPSESSID.

Ce qui se passe exactement

En PHP, l’identifiant de session est stocké dans le cookie :

PHPSESSID=abc123...

Quand on appelle :

session_regenerate_id();

PHP :

1. crée un nouvel identifiant de session ;

2. met à jour le cookie PHPSESSID envoyé au navigateur ;

3. conserve les données de session existantes (par défaut).

Donc après l’appel, le navigateur reçoit un nouveau cookie :

PHPSESSID=xyz789...

Exemple

session_start();

echo session_id();

session_regenerate_id();

echo session_id();

La deuxième valeur affichée sera différente.

Pourquoi on utilise ça ?

Principalement pour éviter les attaques de :

 fixation de session (session fixation) ;

 détournement de session.

Par exemple après une connexion utilisateur :

session_start();

if ($login_ok) {
session_regenerate_id(true);
}

Le paramètre true demande à PHP de supprimer l’ancienne session du serveur.

Différence entre true et false

session_regenerate_id(true);

 nouvelle session ;

 ancien fichier/session supprimé.

session_regenerate_id(false);

 nouvelle session ;

 ancienne session conservée temporairement.

Important

La fonction doit être appelée après :

session_start();

Sinon PHP ne sait pas quelle session régénérer.

est ce que le client peut imposer la valeur de,session iden lui envoyant dans une requete

Oui, un client peut tenter d’imposer une valeur de session ID à PHP en l’envoyant dans une requête,
mais cela dépend de la configuration du serveur et des protections mises en place.

Méthodes possibles

Le client peut envoyer un identifiant de session :

1. Par cookie

Le plus courant :

Cookie: PHPSESSID=hack123

PHP utilisera cette valeur comme identifiant de session si elle est acceptée.

2. Par URL

Si session.use_trans_sid est activé :

[Link]

3. Par formulaire POST

Possible aussi dans certains cas :


PHPSESSID=hack123

Risque : Session Fixation

C’est le principe de l’attaque appelée :

Session Fixation

L’attaquant force la victime à utiliser un ID de session connu à l’avance.

Exemple

1. L’attaquant crée :

PHPSESSID=abc999

2. Il pousse la victime à utiliser cette session.

3. La victime se connecte.

4. Si le serveur ne régénère pas l’ID :


l’attaquant connaît déjà la session authentifiée.

Protection principale

Après authentification :

session_start();

session_regenerate_id(true);

Cela détruit l’ancien identifiant imposé et en crée un nouveau inconnu de l’attaquant.

PHP accepte-t-il toujours un ID fourni par le client ?

Non, cela dépend de :

session.use_strict_mode = 1

Avec le mode strict activé :

 PHP refuse les IDs de session inexistants ;

 il génère un nouvel ID sécurisé.

Sans mode strict :

 PHP peut accepter un ID arbitraire fourni par le client.

Bonnes pratiques

Dans [Link] :
session.use_only_cookies = 1
session.use_strict_mode = 1
session.cookie_httponly = 1
session.cookie_secure = 1

Et après login :

session_regenerate_id(true);

donne moi un TP exempleen PHP de definition de session id par le client

Voici un petit TP pédagogique en PHP montrant comment un client peut tenter d’imposer une valeur
de PHPSESSID, afin de comprendre le principe de la Session Fixation et la protection avec
session_regenerate_id().

Structure du TP

tp-session/

├── [Link]
├── [Link]
└── [Link]

1. [Link]

<?php
session_start();

/*
TP pédagogique :
Le client peut imposer son propre PHPSESSID
via le cookie envoyé au serveur.
*/

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$user = $_POST['user'];
$pass = $_POST['pass'];

// Authentification simplifiée
if ($user === 'admin' && $pass === '1234') {

// COMMENTEZ cette ligne pour voir la vulnérabilité


// session_regenerate_id(true);

$_SESSION['user'] = $user;

header("Location: [Link]");
exit;
}
}
?>

<h2>Connexion</h2>

<p>Session ID actuel : <b><?php echo session_id(); ?></b></p>

<form method="POST">
Utilisateur :
<input type="text" name="user"><br><br>

Mot de passe :
<input type="password" name="pass"><br><br>

<button type="submit">Connexion</button>
</form>

2. [Link]

<?php
session_start();

if (!isset($_SESSION['user'])) {
die("Non connecté");
}
?>

<h2>Profil utilisateur</h2>

Utilisateur :
<b><?php echo $_SESSION['user']; ?></b>

<br><br>

Session ID :
<b><?php echo session_id(); ?></b>

<br><br>

<a href="[Link]">Déconnexion</a>

3. [Link]

<?php
session_start();
session_destroy();

echo "Session détruite";

Expérience du TP

Étape 1 : lancer le serveur PHP

Dans le dossier :

php -S localhost:8000

Étape 2 : imposer un PHPSESSID

Ouvrir le navigateur avec :

[Link]

Selon la configuration PHP, le serveur peut accepter :

PHPSESSID = HACKER123

Étape 3 : se connecter

Identifiants :

admin
1234

Puis observer :

session_id()

Cas vulnérable

Si cette ligne est commentée :

// session_regenerate_id(true);

Alors l’ID reste :

HACKER123

Le client a donc imposé son propre identifiant.

Cas sécurisé

Si on active :
session_regenerate_id(true);

Après connexion :

 PHP crée un nouvel ID aléatoire ;

 HACKER123 disparaît ;

 l’attaque échoue.

Vérification du cookie

Dans les outils développeur du navigateur :

F12 → Application/Storage → Cookies

Observer la valeur de :

PHPSESSID

avant et après session_regenerate_id().

Configuration vulnérable / sécurisée

Dans [Link] :

Vulnérable

session.use_strict_mode = 0

Plus sécurisé

session.use_strict_mode = 1

Avec le mode strict :

 PHP refuse les IDs inexistants ;

 il génère automatiquement un nouvel ID.

Vous aimerez peut-être aussi