Ich habe window.location.href
mehrere Stellen in meinen Javascripts verwendet. Gibt es eine allgemeine Möglichkeit, allen CSRF-Token hinzuzufügen?CSRF-Token für window.location.href hinzufügen
Da die window.location ist ein Objekt und
window.location.href
ist eine seiner Eigenschaften, können wir es nicht außer Kraft setzen können.Schreiben einer gemeinsamen Funktion wie unten und Routing der Instanzen wäre mehr manuell und zeitaufwendig.
addCSRFAndProceed(url);
function addCSRFAndProceed (url) {
window.location.href = url + getCSRFTokenAndValue();
}
Backend Code Hier ist der Code für das CSRF Cookie von meinem Backend-Einstellung.
$_COOKIE['CSRFTOKEN'] = '123456';
HTML-Code
<div class="redirect-button" onclick="TriggerRequest()">
Javascript-Code
function TriggerRequest() {
window.location.href="www.mysite.com/?index.php&from=desktop";
}
Ich habe verschiedene Funktionen, die window.location.href
verwenden und eine generische Lösung erwarten an die URL anhängen Token, weil es Seien Sie hektisch, um alle Funktionen manuell anzuhängen.
Sie die csrf Token auf das Backend erzeugen sollte (vorausgesetzt, Sie sprechen nicht über node.js) und Sie könnte es in den Header setzen, wenn Sie einen "Standard" Ort haben wollen, um das Token zu bekommen. Brauchen Sie jedoch csrf für Weiterleitungen? Ist es nicht besser, es für Formulare zu verwenden? –
Ich benutze plain javascript. Ich habe das CSRF-Token erstellt und im Cookie gespeichert. Ich stimme zu, dass ** es besser ist, Formulare zu verwenden und CSRF auch nicht für Weiterleitungen benötigt wird **. Aber leider hat meine Backend-Logik, um das CSRF-Token zu überprüfen, nicht mehr Intelligenz, um verschiedene Arten von Anfragen zu trennen und endete damit, vom Frontend zu reparieren. – Barath
aber wie schützen clientseitig generierte csrf-Token Sie? * "Vertraue niemals dem Client" * –