ホームページ >バックエンド開発 >PHPチュートリアル >elcomsoft ワイヤレス セキュリティ au PHP セッションは期限切れになりません ソリューションのアイデアと実装方法の共有

elcomsoft ワイヤレス セキュリティ au PHP セッションは期限切れになりません ソリューションのアイデアと実装方法の共有

WBOY
WBOYオリジナル
2016-07-29 08:44:501146ブラウズ

社内の限られたカスタマーサービス担当者のみが利用できるシステムを初期段階で開発しました。数日前、突然この質問を提起したのは、限られたカスタマー サービス スタッフでした。私たちが顧客の問題を解決したいと思っていると、短時間 (ページを操作しない 30 分) ごとに、システムはログを記録する必要があることを要求しました。遅れたお客様の時間…とても不愉快です
お客様は神様、唯一の神様です。そこで上司は、カスタマー サービス スタッフが人為的に期限切れにしない限り、PHP のセッションは期限切れにならないことを理解するように私たちに求めました。セキュリティ上の理由からこの期限切れのない動作は理解できません。遅延を理由に以前のプログラムを変更したくありません。でも仕方ない、まだ変わらないといけない。
プログラムを変更しないのが最善の方法です。プログラムを変更すると、テスト部門が私と同じように非常に憂鬱になるため、システム環境の構成を変更するだけです。実際には、php を開きます。 ini 設定ファイルを編集し、次のように 3 行を変更します。
1. session.use_cookies
この値を 1 に設定し、Cookie を使用してセッション ID を渡します
2. session.cookie_lifetime
これは、SessionID がクライアント Cookie に保存される時間を表します。デフォルトは 0 です。これは、ブラウザが閉じるとすぐに SessionID が無効になることを意味します。 ...これが原因で、PHP セッションを永続的に使用することができなくなります。それでは、考えられる番号に設定してみましょう。とても大きいです、999999999 はどうでしょうか、それでOKです。
3. session.gc_maxlifetime
これは、セッションデータがサーバー側に保存される時間です。この時間を超えると、セッションデータは自動的に削除されます。そして、これも99999999に設定します。
それだけです。すべて問題ありません。もちろん、信じられない場合は、テストして確認してください。コンピューターが停電したりクラッシュしたりしなければ、セッションをセットアップして 10 日半後に戻ってきます。 、このセッションIDはまだ表示されています。
もちろん、あなたにサーバーを制御する権限がなく、php.ini の設定を変更できるほど幸運ではない可能性もあります。もちろん、私たち自身に頼る方法もあります。クライアントを使用して Cookie を保存し、取得したセッション ID をクライアントの Cookie に設定し、この値を session_id() 関数に渡します。 具体的な方法は次のとおりです。コード

コードは次のとおりです:session_start(); // セッションを開始します

$_SESSION['count']; // セッション変数 Count を登録します

isset($PHPSESSID)?session_id( $PHPSESSID):$PHPSESSID = session_id();
// $PHPSESSID が設定されている場合は、SessionID が $PHPSESSID に割り当てられ、そうでない場合は SessionID が生成されます
$_SESSION['count']++ // 変数 count に 1 を加算します。
setcookie('PHPSESSID', $PHPSESSID, time()+3156000); // セッション ID を Cookie に保存
echo $count; // セッション変数 count の値を表示します


しばらくしてからこのページを更新すると (どのくらいの時間がかかるかは自分で確認できます)、出力値が終了時よりも 1 大きくなっている場合は、誰かがあなたのコンピュータを触ったと推定されます。このテストは正確ではありません。はは...しばらく出かけてください。
注: setcookie 行の 'PHPSESSID' は、変更マニアに出会った場合、彼が変更した可能性があります。最善の方法は、phpinfo() 関数を使用して session.name の値を確認することです。これはより科学的です。
以上、elcomsoft ワイヤレス セキュリティ au PHP のセッションが期限切れにならないソリューションのアイデアと実装方法を紹介しました。elcomsoft ワイヤレス セキュリティ au の内容も含めて、PHP チュートリアルに興味のある友人の参考になれば幸いです。


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