Ich möchte Cookie mit einem Namen csrf_cookie_name mit einem Wert aus dieser Funktion setzen $ this- & gt; security- & gt; get_csrf_hash (); aber das ist es nicht arbeiten.
Ich habe das in meinem Controller:
%Vor%Aber es funktioniert nicht und es wird nichts geäußert.
Wenn ich nur das versuche:
%Vor%Ich arbeite und eine generierte Zeichenfolge wird ausgegeben.
Ich nehme also an, dass etwas in den nächsten zwei Zeilen falsch ist:
%Vor%Danke für Ihren Rat.
Der Grund dafür, dass kein Cookie zurückgegeben wird, liegt darin, dass die $this->input->cookie()
-Funktion direkt vom globalen $_COOKIE
-Array gelesen wird und $this->input->set_cookie()
das $_COOKIE
-Array nicht sofort auf dem Server auffüllt. Stattdessen stellt $this->input->set_cookie()
den Cookie so ein, dass er zurückgesendet und im Browser gespeichert wird. Nur bei der nächsten HTTP-Anfrage der Benutzer können Sie diesen Cookie erneut beobachten.
Zweitens, und vielleicht noch wichtiger, denke ich, dass Sie den csrf-Cookie nicht ordnungsgemäß verwenden. Zum Schutz vor Cross-Site-Request-Fälschungen müssen Sie es nur aktivieren und seine Eigenschaften in config/config.php
festlegen. Das ist es. Es ist nicht notwendig, es in den Controllern überhaupt zu lesen und zu schreiben.
Der Cookie ist schon da. Sie können über Javascript mit:
konsultieren %Vor%Ich hoffe, dass es nützlich ist.
Tags und Links codeigniter