I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Email

contact@ibrahimahmed.online

Website

https://ibrahimahmed.online/

Social Links

كل ما تحتاج معرفته عن الجلسات (Sessions) في Laravel – التخزين، الأمان، والتشفير خطوة بخطوة

تعرف على الجلسات (Sessions) في Laravel، كيف تعمل، طرق تخزينها، وأفضل الممارسات لحمايتها. سنشرح بالتفصيل كيفية استخدام الملفات، قاعدة البيانات، و Redis لتخزين الجلسات، مع نصائح للأمان مثل التشفير، حماية الجلسات من الاختراق، ومنع JavaScript من الوصول إ...

كل ما تحتاج معرفته عن الجلسات (Sessions) في Laravel – التخزين، الأمان، والتشفير خطوة بخطوة

 كل حاجة عن الجلسات (Sessions) في Laravel للمبتدئين

🤔 يعني إيه جلسات (Sessions)؟

لو دخلت على موقع وسجلت دخول، الموقع إزاي بيعرف إنك لسه مسجل دخول لما تروح لصفحة تانية؟ 🤔

هنا بييجي دور الجلسات (Sessions)! الجلسة هي معلومات مؤقتة بيخزنها السيرفر عنك عشان تفضل متصل بالموقع بدون ما تعيد تسجيل الدخول في كل صفحة.

🎯 مثال عملي على الجلسات

لما تسجل دخول في موقع، Laravel بيحفظ بياناتك في جلسة.

كل مرة تزور صفحة جديدة، السيرفر بيشوف الجلسة ويتأكد إنك نفس المستخدم.

لما تسجل خروج، Laravel يمسح الجلسة وتحتاج تسجل دخول من جديد.

🛠️ إزاي Laravel بيتعامل مع الجلسات؟

Laravel بيوفر كذا طريقة لتخزين الجلسات، منها:

الملفات (`file`) → Laravel بيخزن الجلسة في ملف محلي.

قاعدة البيانات (`database`) → Laravel بيحفظ الجلسة جوه MySQL أو PostgreSQL.

Redis (`redis`) → Laravel بيستخدم قاعدة بيانات في الرام للتخزين السريع.

الكاش (`memcached`) → الجلسات بتتخزن في الذاكرة بدل الهارد ديسك.

🛠️ إزاي نستخدم الجلسات في Laravel؟

1️⃣ حفظ بيانات في الجلسة

session(['user_name' => 'Ibrahim']);

2️⃣ قراءة بيانات الجلسة

$name = session('user_name');
echo $name; // Ibrahim

3️⃣ حذف بيانات الجلسة

session()->forget('user_name');

4️⃣ حذف كل الجلسة (تسجيل خروج)

session()->flush();

🔥 إزاي تخزن الجلسات بطريقة آمنة؟

1- استخدام HTTPS للجلسات

SESSION_SECURE_COOKIE=true

2- منع JavaScript من الوصول للجلسات

'http_only' => true,

3- تشفير بيانات الجلسة

'encrypt' => true,

🚀 إزاي نختار طريقة تخزين الجلسات؟

1- تخزين الجلسات في الملفات (File Sessions)

SESSION_DRIVER=file

2- تخزين الجلسات في قاعدة البيانات (Database Sessions)

SESSION_DRIVER=database
php artisan session:table
php artisan migrate

3- تخزين الجلسات في Redis (الأفضل للأمان والسرعة)

SESSION_DRIVER=redis
redis-cli ping

🔍 الخلاصة

الأفضل للأمان والسرعة؟Redis (SESSION_DRIVER=redis)

لو مش عندك Redis؟قاعدة البيانات (SESSION_DRIVER=database)

للاختبار أو المشاريع الصغيرة فقط؟الملفات (SESSION_DRIVER=file)

💡 نصيحة أخيرة: مهما كانت الطريقة اللي هتستخدمها، لازم تفعل HTTPS، تمنع JavaScript من الوصول للجلسة، وتشفر البيانات عشان تضمن أعلى مستوى أمان. 🔥🚀


Share

Related posts

May 23, 2025 • 1 min read
FlyEnv - أداة إدارة بيئة تطوير متكاملة للمطورين

FlyEnv هي أداة شاملة لإدارة بيئات التطوير، بتسهل على المطورين التعامل مع إصدارات متعددة من لغات البر...

Apr 28, 2025 • 1 min read
فهم نمط الـ Repository في Laravel: دليل شامل

تعلم كل ما تحتاج معرفته عن نمط الـ Repository في Laravel. هذا الدليل يشرح كيفية تنفيذه بفعالية، مميز...

Mar 28, 2025 • 1 min read
اجعل Laravel يقوم بـ Git Pull تلقائيًا بعد كل Push في GitHub باستخدام Webhook – بدون تدخل يدوي! 🚀

هل تعبت من الدخول إلى السيرفر كل مرة لتحديث الكود بعد git push؟ 🤦‍♂️ في هذا المقال، ستتعلم كيف تجعل...