CSRF-System: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „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 enth…“) |
|||
Zeile 1: | Zeile 1: | ||
− | 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. | + | 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]] oder die [[Systemeinstellungen#Sicherheit|Systemeinstellungen]] definiert werden. |
== CSRF-Token erhalten == | == CSRF-Token erhalten == |
Aktuelle Version vom 14. April 2019, 12:30 Uhr
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 oder die Systemeinstellungen definiert werden.
Inhaltsverzeichnis
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) { // ... });