Bonjour à tous,
Bénéficiant d'une approche orientée objet depuis PHP5, je me suis penché sur la réalisation d'une classe Session qui aurait pour but de simplifier l'utilisation des sessions. Elle permettrait par exemple d'accéder aux variables de session à l'aide de méthode get/set, d'appeler automatiquement session_start() dans le constructeur de l'objet, et d'implémenter un petit mécanisme d'authentification.
Bien évidemment le tout se devrait suffisamment flexible et générique afin d'être facilement réutilisable pour n'importe quel projet futur.
La méthode login se contente d'enregistrer une variable de session spécifique (authentication_ip) qui contient l'adresse IP du client qui soumet la demande, ainsi qu'une série de variable additionelles (typiquement, ce sera l'ID du membre, le login de la personne, etc...)
La méthode logout détruit la session
La méthode isLogged sera utilisée pour déterminer si le client est identifié ou non. Le test se base simplement sur l'adresse IP.
Selon vous, et tenant compte de tous les problemes de sécurité, ce dernier test est-il suffisant ? Quels sont, pour votre part, les tests que vous effectuez pour vérifier qu'un client s'est correctement identifié ?
PS: Toute suggestion/amélioration/critique concernant la classe est la bievenue !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 class Session { function __construct() { session_start(); } public function getValue($key) { return isset($_SESSION[$key]) ? $_SESSION[$key] : FALSE; } public function setValue($key, $value) { $_SESSION[$key] = $value; } public function login($pValues = array()) { $_SESSION['authentication_ip'] = $_SERVER['REMOTE_ADDR']; foreach ($pValues as $key => $value) { $_SESSION[$key] = $value; } } public function logout() { session_unset(); session_destroy(); } public function isLogged() { return isset($_SESSION['authentication_ip']) && $_SESSION['authentication_ip'] == $_SERVER['REMOTE_ADDR']; } }
Merci
Partager