Yii2: Wie lese ich einen Cookie, der von JavaScript gesetzt wurde

8

Ich habe einen Cookie in web / js / site.js gesetzt:

%Vor%

Ich habe den Cookie mit PHP gelesen:

%Vor%

Ist es möglich, auch die Yii Request Component zu verwenden, um solche Cookies zu lesen? Der folgende Code liest den Cookie nicht:

%Vor%

Siehe: Ссылка

Wenn ich einen neuen Cookie über die Yii Response Component einstelle:

%Vor%

Dann sieht der Wert des Cookies so aus (weil der Cookie geschützt ist):

%Vor%

Ein solcher Cookie kann die Yii Request Component lesen. Aber kann es auch ungeschützte Cookies lesen?

Oder ist es möglich, die geschützten Yii-Cookies mit JavasSript / jQuery (ohne Verwendung von AJAX) zu setzen?

    
Antonín Slejška 27.10.2015, 08:21
quelle

1 Antwort

4

Um einen Cookie zu lesen, der von Javascript gesetzt wurde, müssen Sie in den Konfigurationen config/web.php festlegen, dass einige Eigenschaften der Anforderungskomponenten false wie folgt lauten:

%Vor%

Dies ermöglicht das Lesen von Cookies, die mit Javascript wie folgt eingestellt wurden:

%Vor%

Warnung!

Die obige Lösung hat möglicherweise Sicherheitsprobleme , weil wir die enableCookieValidation und enableCsrfValidation für alle Cookies storniert haben. Es gibt also eine andere Lösung, die es ermöglicht, diese Validierungen für ein bestimmtes Cookie zu überspringen. Nehmen wir den theme -Cookie, den wir gerade im obigen Beispiel benutzt haben, verwenden wir den zweiten Parameter der getValue() -Methode, also den Standardwert wie Folgendes:

%Vor%

Mit der obigen Lösung können Sie enableCookieValidation und enableCsrfValidation als true behalten und sie nur für ein bestimmtes Cookie umgehen.

    
SaidbakR 22.10.2016 15:00
quelle

Tags und Links