Mise à jour du CSS d'affichage de shipmember.php, administration.php et bateaux.php pour les pages de connexion et pour les pages d'affectation de droits su run bateau
This commit is contained in:
@@ -394,3 +394,31 @@ echo '</html>';
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//************************************************************************************************************
|
||||
// Jeton anti-CSRF (synthèse §48) : un jeton aléatoire par session, inclus dans chaque formulaire et vérifié à chaque
|
||||
// requête POST - un formulaire envoyé depuis un autre site ne peut pas le connaître. Complète SameSite=Lax.
|
||||
//************************************************************************************************************
|
||||
|
||||
// Fonction : Jeton de la session (créé au premier appel).
|
||||
// Retour : Le jeton (64 caractères hexadécimaux)
|
||||
function Jeton_csrf()
|
||||
{
|
||||
if (empty($_SESSION['jeton_csrf'])) $_SESSION['jeton_csrf'] = bin2hex(random_bytes(32));
|
||||
return $_SESSION['jeton_csrf'];
|
||||
}
|
||||
|
||||
// Fonction : Champ caché portant le jeton, à placer dans chaque formulaire POST.
|
||||
// Retour : Le code HTML du champ
|
||||
function Champ_jeton_csrf()
|
||||
{
|
||||
return '<input type="hidden" name="jeton_csrf" value="'.Jeton_csrf().'">';
|
||||
}
|
||||
|
||||
// Fonction : Vérifie le jeton reçu dans la requête POST (comparaison à temps constant).
|
||||
// Retour : true si le jeton est présent et correct
|
||||
function Jeton_csrf_valide()
|
||||
{
|
||||
return (isset($_POST['jeton_csrf']) && is_string($_POST['jeton_csrf']) && hash_equals(Jeton_csrf(), $_POST['jeton_csrf']));
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user