cakephpセッション/断続的にログアウトします
-
21-09-2019 - |
質問
ユーザーからのレポートや苦情があり、画面を使用し、次のリクエストですぐにログイン画面に戻ってきます。それは常に起こるわけではありませんが、ランダムに起こります。
私はCakePHPとAUTHコンポーネントを使用していますが、この問題以外にうまく機能しているようです
セッションをリセットする404リクエスト、つまり壊れた画像リンクまたはFaviconファイルが欠落している場合、これが時々発生することがあることがあることが、ケーキフォーラムでフィードバックを受け取りました。私はFireBugを開いており、失敗したリクエストがありませんので、これを可能性として除外しましたが、ユーザーは散発的にログアウトしています。これは、ブラウザとオペレーティングシステム全体で発生するようです。
以下は私の構成設定の概要です:security.level = high Session.timeout = 1200 //これは私の実際のタイムアウトが12,000秒session.save = phpでなければならないことを意味します
私はこの問題を引き起こしているものについて本当に途方に暮れています...
解決
また、セキュリティセットに問題がありました。高く設定すると、すべてのリクエストでセッションが再生されます。「CakePhpセッションIDは、「セキュリティ」が「高」に設定されている場合、リクエスト間で再生されます。」
この問題のクロスブラウザーもあったので、最良の解決策ではないことはわかっていますが、セキュリティ設定をMediumに変更し、セッションのタイムアウトを変更してその設定を反映して以来問題はありませんでした。
他のヒント
同様の問題がありましたが、core.phpファイルのuser_agentチェックであることがわかりました。これをfalseに設定しました!
ページが更新された後、セッションIDが変更されてログアウトされたことが起こっていましたが、セッションオブジェクトにはセッションの試行がハイジャックされたというエラーがありました!!! pr($ this-> session);
core.phpでこれをfalseに設定します! configure :: write( 'session.checkagent'、false);
あなたをチェックしてください Auth->allow
また ->deny
, 、そうかもしれないので、ユーザーはコントローラーの制限された部品またはアクションにアクセスします。
第二に、特定のものを確認してください Sanitize
CakePhpの場合、「セキュリティの高い」オプションは、多くの場合トラブルを引き起こすことを好むためです。
404ページセッションをリセットしますか?私はそれについて聞いたことがありません。
あなたの問題は認証ルーチンのどこかにあると思います。あまりにも多くのことを制限している場合、それが起こる可能性があるため、リクエストの星座のいくつかは、属性が欠落しているために失敗します。
たとえば、useroneはウェブサイトにアクセスしようとします。彼のユーザー名には、ユーザー名の誤った解釈を引き起こす文字列が含まれています。名前はデータベース内にありますが、認証はリクエストにリンクできませんでした。
このようなエラーは、常にコードの内部に隠れています。
Security.Level on Highはそれを行います。 core.phpでmediumに設定します