CSRF-System: Unterschied zwischen den Versionen

Aus sourceDESK Wiki
Wechseln zu: Navigation, Suche
(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.

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) {
    // ...
});