Fix: creation et verification d'un jeton alatoire afin de valider une requete POST, voici la ligne ajouter dans une requete POST
print '<input type="hidden" name="token" value="'.$_SESSION['newtoken'].'">';
This commit is contained in:
parent
df37827eb7
commit
d73aac6e4e
@ -34,12 +34,6 @@ $langs->load("admin");
|
||||
if (! empty($_SERVER['HTTP_REFERER']) && !eregi(DOL_MAIN_URL_ROOT, $_SERVER['HTTP_REFERER']))
|
||||
accessforbidden();
|
||||
|
||||
//Todo: Verification de la presence et de la validite du jeton précédent
|
||||
if (isset($_POST['token']) && isset($_SESSION['oldtoken']))
|
||||
{
|
||||
if ($_POST['token'] != $_SESSION['oldtoken']) accessforbidden();
|
||||
}
|
||||
|
||||
if (!$user->admin)
|
||||
accessforbidden();
|
||||
|
||||
|
||||
@ -168,11 +168,17 @@ session_name($sessionname);
|
||||
session_start();
|
||||
dol_syslog("Start session name=".$sessionname." Session id()=".session_id().", _SESSION['dol_login']=".(isset($_SESSION["dol_login"])?$_SESSION["dol_login"]:'').", ".ini_get("session.gc_maxlifetime"));
|
||||
|
||||
//Todo: Creation d'un jeton contre les failles CSRF
|
||||
// Creation d'un jeton contre les failles CSRF
|
||||
$token = md5(uniqid(rand(),TRUE)); // Genere un hash d'un nombre aleatoire
|
||||
$_SESSION['oldtoken'] = $_SESSION['newtoken']; // roulement des jetons car créé à chaque appel
|
||||
$_SESSION['oldtoken'] = $_SESSION['newtoken']; // roulement des jetons car cree a chaque appel
|
||||
$_SESSION['newtoken'] = $token;
|
||||
|
||||
// Verification de la presence et de la validite du jeton
|
||||
if (isset($_POST['token']) && isset($_SESSION['oldtoken']))
|
||||
{
|
||||
if ($_POST['token'] != $_SESSION['oldtoken']) unset($_POST);
|
||||
}
|
||||
|
||||
// Retrieve the entity in login form or in the cookie.
|
||||
// This must be after the init of session (session_start) or this create serious pb of corrupted session.
|
||||
/*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user