目次
返信内容:
ホームページ バックエンド開発 PHPチュートリアル php でログイン状態を維持する方法 セキュリティについて詳しく説明します。

php でログイン状態を維持する方法 セキュリティについて詳しく説明します。

Aug 18, 2016 am 09:16 AM
php

今、私のウェブサイトはセッションを使用していますが、ブラウザを閉じるとログイン状態が消えてしまい、非常に不便です
[ログイン状態を維持する]機能の使い方と、Cookieのセキュリティを行う方法を詳しく説明するのが最善です。具体的な計画はありませんが、開発経験のある人が指導してくれることを願っています

返信内容:

今、私のウェブサイトはセッションを使用していますが、ブラウザを閉じるとログイン状態が消えてしまい、非常に不便です
[ログイン状態を維持する]機能の使い方と、Cookieのセキュリティを行う方法を詳しく説明するのが最善です。具体的な計画はありませんが、開発経験のある人が指導してくれることを願っています

PHP セッションも Cookie を使用して実装されることに注意してください。ブラウザに保存される Cookie 名はデフォルトで PHPSESSID になります。
このセッションの有効期限は 3600 秒に設定することもできます。
session_set_cookie_params(3600);
この方法 この Cookie は、ブラウザを閉じてから 1 時間以内に再度開いても有効です。

PHP セッションは、デフォルトで各 PHPSESSID がセッション データを保存するファイルに対応します。つまり、異なる PHPSESSID のセッション データは共有されません。
たとえば、PHP セッションを使用してショッピング カートやビデオを実装する場合。閲覧記録機能では、
ショッピングカートのデータをセッションファイルに保存すると、他の端末やブラウザからログインした後はショッピングカートのデータが閲覧できなくなります。
このとき、ショッピングカートのデータをセッションファイルに保存する必要があります。データベース

データベースに基づいてカスタマイズされた Cookie セッション メカニズムを実装する方法について話しましょう:

ユーザー ID (プレーン テキスト) とユーザーのソルト値 (ハッシュ) は Cookie に保存されます。

高度なセキュリティが必要な場合は、MCRYPT_BLOWFISH を使用して Cookie コンテンツ全体を暗号化することもできます。
この Cookie はユーザーを認証できる必要があります。 , そして、偽造してはなりません
ユーザーのソルト値は、ユーザーが登録するときにパスワードを保護するためにランダムに生成されて決定され、ユーザーテーブルのユーザーに対応するフィールドデータに保存されます。 リーリー
ユーザーのソルト、アプリケーションのグローバル ソルト、および MCRYPT_BLOWFISH 暗号化キー $key はすべてランダムに生成され、決定されます。


の現在の時刻に基づいてプロセス ID + 乱数 + マイクロ秒を生成するアルゴリズム。数値 + エントロピー
sha1( uniqid(getmypid().'_'.mt_rand().'_', true) )ユーザーを検証するときは、最初に秘密キーを使用して $_COOKIE['cookie_name'] を復号し、
その後、base64_decode を使用してユーザー ID を取得し、

次にユーザー ID に基づいてユーザーのソルトをクエリし、

次に同じメソッドにソルトを渡します。クッキーに続くハッシュアルゴリズム $cookie_salt のソルトを比較します
それらが一致していれば、ユーザーのクッキーは有効であると判断されます
リーリー

ブラウザを閉じても1か月で期限切れになるように、Cookieの有効期間を設定します。たとえば、現在時刻に1週間を加えます

  1. Cookie の内容は、ユーザー ID に対して対称的に暗号化できます。バックエンドは最初に暗号文を取得し、それを復号化して、最後にログインします
  2. Cookie を操作するだけではセッションの有効期限の問題を解決できません。キャッシュ を使用してセッションを保存することをお勧めします。有効期限は任意に設定できます。オンラインかどうかを確認する場合は、直接アクセスしてください。
php.ini でセッション ストレージ メディアを設定できるようです。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

この章では、CakePHP の環境変数、一般設定、データベース設定、電子メール設定について理解します。

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

この章では、ルーティングに関連する次のトピックを学習します。

CakePHP データベースの操作 CakePHP データベースの操作 Sep 10, 2024 pm 05:25 PM

CakePHP でデータベースを操作するのは非常に簡単です。この章では、CRUD (作成、読み取り、更新、削除) 操作について理解します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

See all articles