PHP - CSRF-Token für Formulare erstellen

Cross-Site-Request-Forgery (CSRF) ist eine Angriffstechnik auf eine Website. Sie bringt einen gegenüber der Website authentisierten Benutzer dazu, unbewusst manipulative Aktionen durchzuführen.

Der auf Session basierende Page-Token, zur Authentifizierung des Formulars, wird in einem versteckten Formularfeld auf der Seite eingebunden.


<?php

// CSRF-Token für Formulare erstellen

session_start();

// CSRF-Token erzeugen
if (!isset($_SESSION["token"])) {
 
$min 1000;
 
$max getrandmax();
 
$_SESSION["token"] = rand($min$max);
}

if (
$_SERVER["REQUEST_METHOD"] == "POST") {
 if (
$_SESSION["token"] != $_POST["token"]) {
  die;
 }
 else {
  ...
 }
}
?>

<!DOCTYPE html>
<html lang="de">
 <head>
  <meta charset="UTF-8">
  <title>Formular</title>
 </head>
<body>

<form action="" method="post">
    <input type="hidden" name="token" value="<?=$_SESSION["token"]?>">
    ...
</form>

<body>
</html>

Bausteine  Alle Anzeigen

Eine zufällige Auswahl von Codeschnipseln aus den Bereichen HTML, CSS, PHP, JavaScript und MySQL.

<caption> Tabellenüberschrift

CSS - Aufzählungslisten einfärben

PHP - Alle Sessions bis auf eine löschen

JavaScript - Text mit einem Link markieren

MySQL - Text automatisch nach Zeichenanzahl kürzen

Externe Linkliste
Links zu anderen Webseiten sollten nach Möglichkeit zentral auf einer Seite geschrieben werden — Grund: Sollte ein externer Link einmal nicht mehr funktionieren (z.B., wenn die Webseite gelöscht wurde), so lässt sich das leichter überprüfen, als wenn die externen Links auf fünfzig (oder mehr) Seiten verteilt sind.