Wie kann man Cross-Site Request Forgery (CSRF) in PHP effektiv verhindern?

Ich versuche, @ zu verhinde CSRF im php auf die folgende Weise

A $_SESSION['token'] wird am Anfang jeder Seite generiert. Ich weiß das schon mit$_COOKIES ist völlig falsch, da sie bei jeder Anfrage automatisch gesendet werden.

In jedem<form>, die folgende Eingabe:<input type="hidden" name="t" value="<?php echo '$_SESSION['token']; ?>"> wird angehängt.

Das$_SESSION['token']; wird mit dem @ bestäti$_POST['t']

Jetzt habe ich einige kleine Fragen:

Ist dies ein guter Weg, um CSRF zu verhindern? Wenn nicht, bitte erläutern.Wenn auch eine andere Seite geöffnet wird, die das gleiche @ set$_SESSION Variable, die vorherige (noch offene) Seite wird ungültig, wie kann das verhindert werden?Für Formulare ist diese Methode klar, aber wie geht man mit normalen Links um? Muss das Token auch an jeden Link angehängt werden?

Vielen Dank im Voraus

Antworten auf die Frage(2)

Ihre Antwort auf die Frage