sourceDESK verfügt über ein CSRF-System, dass die Benutzer vor Cross-Site-Request-Forgery schützt. Alle POST-Requests müssen zwingend einen CSRF-Token enthalten, Ausnahmen können über den Hook:SkipCSRF definiert werden.
CSRF-Token erhalten
In PHP erhalten Sie den CSRF-Token mit folgendem Methodenaufruf:
$token = CSRF::raw();
In Smarty können Sie den Token mit folgender Funktion ausgeben lassen:
{ct}
CSRF-Token in Form einbinden
Das System kann Ihnen direkt ein Hidden-Form-Element (<input>
) generieren. In PHP erhalten Sie das Element wie folgt:
$input = CSRF::html();
In Smarty kann das Form-Element wie folgt ausgegeben werden:
{cf}
Automatische Form-Anpassung
Das System versucht automatisch, POST-Forms zu erkennen und das Hidden-Form-Element einzufügen.
Verwendung bei Ajax
Wenn Sie Ajax verwenden, muss der CSRF-Token auf jeden Fall manuell eingebunden werden. Sie erledigen dies bspw. in Smarty mit jQuery wie folgt:
$.post("url", { "action": "123", "csrf_token": "{ct}", }, function (r) { // ... });