Änderungen
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…“
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:
<source lang="php">
$token = CSRF::raw();
</source>
In Smarty können Sie den Token mit folgender Funktion ausgeben lassen:
<source lang="smarty">
{ct}
</source>
== CSRF-Token in Form einbinden ==
Das System kann Ihnen direkt ein Hidden-Form-Element (<code><input></code>) generieren. In PHP erhalten Sie das Element wie folgt:
<source lang="php">
$input = CSRF::html();
</source>
In Smarty kann das Form-Element wie folgt ausgegeben werden:
<source lang="smarty">
{cf}
</source>
== 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:
<source lang="javascript">
$.post("url", {
"action": "123",
"csrf_token": "{ct}",
}, function (r) {
// ...
});
</source>
== CSRF-Token erhalten ==
In PHP erhalten Sie den CSRF-Token mit folgendem Methodenaufruf:
<source lang="php">
$token = CSRF::raw();
</source>
In Smarty können Sie den Token mit folgender Funktion ausgeben lassen:
<source lang="smarty">
{ct}
</source>
== CSRF-Token in Form einbinden ==
Das System kann Ihnen direkt ein Hidden-Form-Element (<code><input></code>) generieren. In PHP erhalten Sie das Element wie folgt:
<source lang="php">
$input = CSRF::html();
</source>
In Smarty kann das Form-Element wie folgt ausgegeben werden:
<source lang="smarty">
{cf}
</source>
== 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:
<source lang="javascript">
$.post("url", {
"action": "123",
"csrf_token": "{ct}",
}, function (r) {
// ...
});
</source>