Phalcon - Zarządzanie plikami cookie
Pliki cookie znane również jako browser cookiesto małe pliki tekstowe przechowywane w przeglądarce. Zapisuje wszystkie informacje związane z tożsamością użytkownika. Informacje te służą do weryfikacji użytkowników podczas przeglądania różnych stron.
Istnieją dwa różne typy plików cookie -
Session Cookies- Tego typu pliki cookie pozostają w przeglądarce i zachowują informacje do jej zamknięcia. Gdy tylko przeglądarka zostanie otwarta, będzie traktowana jako nowa sesja tego samego użytkownika.
Persistent Cookies- Obejmuje określoną żywotność i pozostaje w przeglądarce przez określony czas. Te strony internetowe, które używają trwałych plików cookie, śledzą każdego użytkownika, nawet jeśli przeglądarka jest przez niego zamknięta.
Omówmy teraz, jak działają pliki cookie w Phalcon.
Pliki cookie w Phalcon
Phalcon używa Phalcon\Http\Response\Cookiesjako globalny magazyn plików cookie. Pliki cookie są przechowywane w Phalcon podczas wysyłania żądania do serwera.
Poniżej znajduje się składnia konfiguracji pliku cookie -
$this->cookies->set(
"<cookie-name>",
"<cookie-value>",
time
);
Rozważmy następujący przykład. Korzystając z poniższego kodu, utworzymy ciasteczka użytkownika, gdy zaloguje się on do aplikacji internetowej.
<?php
class UsersController extends \Phalcon\Mvc\Controller {
public function indexAction() {
if ($this->cookies->has("login-action")) {
// Get the cookie
$loginCookie = $this->cookies->get("login-action");
// Get the cookie's value
$value = $loginCookie->getValue();
echo($value);
}
$this->cookies->set(
"login-action",
"abc",
time() + 15 * 86400
);
}
}
Zaszyfrowane pliki cookie zostaną wyświetlone jako dane wyjściowe.
Opis
Plik cookie o nazwie “loginAction” został stworzony z wartością “abc”.
Metoda “indexAction” sprawdza, czy plik cookie istnieje i odpowiednio drukuje wartość.
Szyfrowanie plików cookie
Pliki cookie w Phalcon są szyfrowane przed wysłaniem na serwer jako żądanie i odszyfrowane, gdy tylko otrzymamy odpowiednią odpowiedź z serwera. Zapewnia to bezpieczeństwo uprawnionym użytkownikom.
Zawsze zaleca się unikanie przechowywania poufnych danych w plikach cookie, pomimo funkcji szyfrowania i deszyfrowania. Konfiguracja do szyfrowania plików cookie jest zawarta wservices.php plik.
/**
* Enable encryption key for setting values of cookies
*/
$di->set(
"cookies", function () {
$cookies = new Cookies();
$cookies->useEncryption(false);
return $cookies;
}
);
/**
* Set encryption key
*/
$di->set(
"crypt", function () {
$crypt = new Crypt();
$crypt->setKey('AED@!sft56$'); // Use a unique Key!
return $crypt;
}
);
Note -
Zawsze zaleca się szyfrowanie podczas wysyłania plików cookie na serwer.
Jeśli szyfrowanie nie jest używane, cała aplikacja wewnętrzna zostanie ujawniona atakującemu.
Zaleca się również przechowywanie małych danych i literałów w plikach cookie.