Phalcon-cookie-management

提供:Dev Guides
移動先:案内検索

ファルコン-クッキー管理

ブラウザーCookieとも呼ばれるCookieは、ブラウザーに保存される小さなテキストファイルです。 ユーザーIDに関連するすべての情報を保存します。 この情報は、ユーザーがさまざまなページを閲覧したときにユーザーを検証するために使用されます。

Cookieには2つの異なるタイプがあります-

  • *セッションCookies-これらのタイプのCookieはブラウザに残り、ブラウザが閉じられるまで情報を保持します。 ブラウザが開かれるとすぐに、同じユーザーの新しいセッションとして扱われます。
  • 永続的なクッキー-規定の有効期間が含まれ、指定された有効期間内にブラウザに残ります。 永続的なCookieを使用するWebサイトは、ブラウザがユーザーによって閉じられた場合でも、すべてのユーザーを追跡します。

PhalconでのCookieの動作について説明しましょう。

ファルコンのクッキー

Phalconは、 Phalcon \ Http \ Response \ Cookies をCookieのグローバルストレージとして使用します。 Cookieは、サーバーにリクエストを送信するときにPhalconに保存されます。

クッキーを設定するための構文は次のとおりです-

$this->cookies->set(
   "<cookie-name>",
   "<cookie-value>",
   time
);

次の例を考えてください。 次のコードを使用して、ユーザーがWebアプリケーションにログインするときにユーザーのCookieを作成します。

<?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
      );
   }
}

暗号化されたCookieは出力として表示されます。

表示される出力

説明

“ loginAction” *という名前のCookieが値“ abc” *で作成されました。

メソッド*“ indexAction” *は、Cookieが存在するかどうかを確認し、それに応じて値を出力します。

クッキーの暗号化

PhalconのCookieは、リクエストとしてサーバーに送信される前に暗号化され、サーバーから適切な応答を受け取るとすぐに解読されます。 これにより、許可されたユーザーのセキュリティが確保されます。

暗号化と復号化の機能にもかかわらず、Cookieに機密データを保存しないようにすることを常にお勧めします。 Cookieの暗号化の設定は、 services.php ファイルに含まれています。

暗号化

/* *
  * 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;
   }
);

-

  • Cookieをサーバーに送信するときは、常に暗号化を使用することをお勧めします。
  • 暗号化を使用しない場合、すべての内部アプリケーションが攻撃者にさらされます。
  • また、小さなデータとリテラルをCookieに保存することをお勧めします。