76 lines
2.7 KiB
PHP
76 lines
2.7 KiB
PHP
|
<?php
|
||
|
|
||
|
|
||
|
/***********************************************************
|
||
|
* *
|
||
|
* MANAGER DE SECURITE GENERALE ET SPECIFIQUE *
|
||
|
* *
|
||
|
************************************************************
|
||
|
* *
|
||
|
* [0] Constantes *
|
||
|
* [1] Session & redirection *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
* *
|
||
|
***********************************************************/
|
||
|
|
||
|
|
||
|
/* [0] CONSTANTES
|
||
|
============================================================*/
|
||
|
function getPermissions(){ return array('student', 'teacher', 'master', 'admin'); }
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/* [1] SESSIONS & REDIRECTION
|
||
|
============================================================*/
|
||
|
|
||
|
|
||
|
/* ETABLIT UNE SESSION SÉCURISÉE
|
||
|
*
|
||
|
* [1] Définit un id_session (PHPSESSID) unique et propre à une connection
|
||
|
* + propre à un navigateur (navigateur, version, OS, système X, ...)
|
||
|
* + propre à un accès (ip publique = box)
|
||
|
*
|
||
|
* [2] Démarre la session
|
||
|
*
|
||
|
*/
|
||
|
function session_init(){
|
||
|
session_id( // on définit le session id
|
||
|
sha1( // qui est un Hash MD5
|
||
|
$_SERVER['HTTP_USER_AGENT']. // qui correspond aux infos système disponibles de l'utilisateur
|
||
|
$_SERVER['REMOTE_ADDR'] // et de son ip publique
|
||
|
)
|
||
|
);
|
||
|
session_start(); // on démarre la session
|
||
|
|
||
|
$PERMISSIONS = getPermissions();
|
||
|
|
||
|
// on vérifie l'intégrité des variables session
|
||
|
$usernameDefinedProperly = isset($_SESSION['username']) && !empty($_SESSION['username']) && gettype($_SESSION['username']) == 'string' && strlen($_SESSION['username']) > 0;
|
||
|
$permissionsDefinedProperly = isset($_SESSION['permissions']) && !empty($_SESSION['permissions']) && gettype($_SESSION['permissions']) == 'string' && strlen($_SESSION['permissions']) > 0;
|
||
|
|
||
|
// si les variables sessions ne sont pas toutes les 2 correctes
|
||
|
if( !($usernameDefinedProperly && $permissionsDefinedProperly) ){
|
||
|
$_SESSION['username'] = null; // on les initialise à NULL
|
||
|
$_SESSION['permissions'] = null;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
?>
|