php - ممك - ملفات تعريف الارتباط فيس بوك




جلسة PHP بدون ملفات تعريف الارتباط (4)

إذا كنت أرغب في القيام بذلك ، فإني أود إضافة معرِّف الجلسة في شفرة HTML كعلامة تعليق واستخدام وتكوين رمز PHP لاستخدام معرف الجلسة هذا المتضمن في شفرة HTML. أعتقد أنه سيكون أكثر ملاءمة للقيام بذلك بدلاً من القيام بذلك باستخدام عنوان IP الخاص بالمستخدم أو إضافة معرف الجلسة في عنوان URL.

هل هناك طريقة يمكنني بها بدء جلسة مستمرة في PHP بدون وضع ملف تعريف ارتباط جلسة العمل؟ هل هناك طرق أخرى للحفاظ على جلسة عبر الصفحات ، مثل حل يستند إلى عنوان IP؟

السبب في طرح السؤال هو أنه على الرغم من أن معظم المستخدمين لديهم ملفات تعريف الارتباط ، أرغب في معرفة ما إذا كانت هناك طريقة يعمل بها نظام تسجيل الدخول لأولئك الذين لديهم تعطيل (على الرغم من أنني أعتقد أن تعطيل ملفات تعريف الارتباط هو مجرد جنون العظمة ، شخصيا).


لا أعتقد أن الأمر أكثر من أن أطلب من المستخدمين تمكين ملفات تعريف الارتباط. أجده سخيفًا عندما يوقفهم الناس تمامًا.

بخلاف ذلك ، يمكنك تعيين session.use_only_cookies على "0" لفرض ملحق رقم جلسة لعناوين URL داخل php الخاص بك. هذا النهج ، ومع ذلك ، فقد سحب العديد من ظهورهم. أساسا أن الحفاظ على الدولة داخل عنوان URL ، بدلا من رأس الكعكة. إذا كان المستخدم سيقوم بنسخ عنوان URL الخاص بالصفحة التي تم تشغيلها ولصقها ، وسيقوم شخص آخر بالنقر فوقه ، فسيستخدم كل منهما نفس الجلسة.

<?php
     ini_set("session.use_cookies", 0);
     ini_set("session.use_only_cookies", 0);
     ini_set("session.use_trans_sid", 1);
     ini_set("session.cache_limiter", "");
     session_start();

يمكنك العمل باستخدام معرّفات الجلسات في عناوين URL ، وتعطيل ملفات تعريف الارتباط من خلال:

ini_set('session.use_cookies', 0);
ini_set('session.use_only_cookies', 0);
ini_set('session.use_trans_sid', 1);
session_start();
// IP check
if($_SESSION['ip_check'] != $_SERVER['REMOTE_ADDR']){
   session_regenerate_id();
   session_destroy();
   session_start();
}
$_SESSION['ip_check'] = $_SERVER['REMOTE_ADDR'];
// session stuff

ملاحظة: إنه مرتبط بشكل كبير باستخدام معرفات الجلسات في عناوين URL. يمكن أن تتغير عناوين IP عند التجول مع بطاقة شبكة لاسلكية وخوادم بروكسي لها نفس عنوان IP. من السهل كسرها عند النقر فوق "عنوان URL قديم" (مع معرف جلسة العمل القديمة).

قد تكون مهتمًا أيضًا بإنشاء وظيفة معالجة الجلسة الخاصة بك (بالتزامن مع قاعدة بيانات). يمكنك تجاهل معرف جلسة العمل وربطه بعنوان IP. (انظر الأمثلة في http://php.net/manual/en/function.session-set-save-handler.php )

المراجع:


يمكنك تعيين قيمة ini- session.use_trans_sid من session.use_trans_sid إلى true لتفعيل إلحاق معرف الجلسة بكل عنوان URL. إلقاء نظرة على this .

لأغراض أمنية ، يجب عليك تحديد الجلسة إلى عنوان IP الذي أنشأ الجلسة. هذا ليس آمنًا تمامًا ، نظرًا لأن شخصًا لديه عنوان IP نفسه (خلف الوكيل مثلاً) يمكنه إعادة استخدام نفس الجلسة.





cookies