Laravel Newbies (Arabic)
رفتن به کانال در Telegram
2 026
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-37 روز
-730 روز
در حال بارگیری داده...
کانالهای مشابه
ابر برچسبها
اشارات ورودی و خروجی
---
---
---
---
---
---
جذب مشترکین
اوت '26
اوت '260
در 0 کانالها
ژوئیه '26
+18
در 0 کانالها
Get PRO
ژوئن '26
+21
در 0 کانالها
Get PRO
مه '26
+16
در 0 کانالها
Get PRO
آوریل '26
+22
در 0 کانالها
Get PRO
مارس '26
+50
در 0 کانالها
Get PRO
فوریه '26
+10
در 0 کانالها
Get PRO
ژانویه '26
+30
در 0 کانالها
Get PRO
دسامبر '25
+34
در 0 کانالها
Get PRO
نوامبر '25
+118
در 0 کانالها
Get PRO
اکتبر '25
+51
در 0 کانالها
Get PRO
سپتامبر '25
+93
در 0 کانالها
Get PRO
اوت '25
+17
در 0 کانالها
Get PRO
ژوئیه '25
+16
در 0 کانالها
Get PRO
ژوئن '25
+19
در 0 کانالها
Get PRO
مه '25
+14
در 0 کانالها
Get PRO
آوریل '25
+28
در 0 کانالها
Get PRO
مارس '25
+27
در 0 کانالها
Get PRO
فوریه '25
+17
در 0 کانالها
Get PRO
ژانویه '25
+26
در 0 کانالها
Get PRO
دسامبر '24
+61
در 2 کانالها
Get PRO
نوامبر '24
+86
در 0 کانالها
Get PRO
اکتبر '24
+101
در 0 کانالها
Get PRO
سپتامبر '24
+101
در 0 کانالها
Get PRO
اوت '24
+63
در 0 کانالها
Get PRO
ژوئیه '24
+48
در 0 کانالها
Get PRO
ژوئن '24
+29
در 0 کانالها
Get PRO
مه '24
+62
در 0 کانالها
Get PRO
آوریل '24
+55
در 0 کانالها
Get PRO
مارس '24
+50
در 1 کانالها
Get PRO
فوریه '24
+85
در 0 کانالها
Get PRO
ژانویه '24
+124
در 0 کانالها
Get PRO
دسامبر '23
+72
در 0 کانالها
Get PRO
نوامبر '23
+140
در 0 کانالها
Get PRO
اکتبر '23
+227
در 0 کانالها
Get PRO
سپتامبر '23
+29
در 0 کانالها
Get PRO
اوت '23
+47
در 0 کانالها
Get PRO
ژوئیه '23
+22
در 0 کانالها
Get PRO
ژوئن '23
+25
در 0 کانالها
Get PRO
مه '23
+24
در 0 کانالها
Get PRO
آوریل '23
+177
در 0 کانالها
Get PRO
مارس '23
+27
در 0 کانالها
Get PRO
فوریه '23
+4
در 0 کانالها
Get PRO
ژانویه '23
+361
در 0 کانالها
| تاریخ | رشد مشترکین | اشارات | کانالها | |
| 01 اوت | 0 |
پستهای کانال
| 2 | السنة الدراسية | 3 |
| 3 | شو الحل يلي طبقتو بمشاريعك الحالية/السابقة | 729 |
| 4 | المشروع يلي عم تواجه فيه هالمشكلة هو | 683 |
| 5 | هل عم تواجه هالمشكلة؟ | 663 |
| 6 | مرحبا جميعا
عم اعمل إحصائية لقصة صغيرة بتمنى تساعدوني فيها
متل ما بتعرفوا كلياتنا عنا مشاريع جامعة أو فريلانس ودائماً بنحتار بكيف بدنا نبعت ال OTP 😅
طبعا صعب نجيب SMS API فعالأغلب عم نضطر نثبّت الـ OTP ع 1234 ونمشي الحال او نستخدم WhatsApp API ويلي كمان بالعادة صعب نجيبو لعدة أسباب
رح اعمل كم Poll لنشوف كيف كل حدا فينا عم يحل هالمشكلة وبتمنى الكل يصوّت..
صدقوني رح تستفادوا كتير لبعدين خصوصي إذا كان في إقبال وكانت النتائج منيحة 🔥 | 653 |
| 7 | مرحبا جميعا
عم اعمل إحصائية لقصة صغيرة بتمنى تساعدوني فيها
متل ما بتعرفوا كلياتنا عنا مشاريع جامعة أو فريلانس ودائماً بنحتار بكيف بدنا نبعت ال OTP 😅
طبعا صعب نجيب SMS API فعالأغلب عم نضطر نثبّت الـ OTP ع 1234 ونمشي الحال او نستخدم WhatsApp API ويلي كمان بالعادة صعب نجيبو لعدة أسباب
رح اعمل كم Poll لنشوف كيف كل حدا فينا عم يحل هالمشكلة وبتمنى الكل يصوّت..
صدقوني رح تستفادوا كتير لبعدين خصوصي إذا كان في إقبال وكانت النتائج منيحة 🔥 | 1 |
| 8 | سؤال انترفيو
اليوزر نسي الباسورد
راح يعمل
Forgot Password
دخل الإيميل
وضغط Send OTP
إيه الي بيحصل ؟ بسيطه.. هنبعت OTP (One time password)
ونبعته على الإيميل
ولما اليوزر يكتبه نتحقق منه.. لو صحيح نغير الباسوورد
سهلة
بس خلينا نفكر أكتر شوية
تخيل إن أحمد طلب OTP.
السيستم طلع otp مثلا :
123456
وبعته على الإيميل.
قبل ما أحمد يكتبه.
ضغط Send OTP مرة تانية
السيستم طلع:
654321
وبعته هو كمان
دلوقتي سؤال
لو أحمد كتب الكود الأول
هل نقبله؟
ولا نرفضه؟
لو قبلناه
يبقى عندنا أكتر من OTP صالح في نفس الوقت.
ولو حد سرق الكود الأول
لسه يقدر يستخدمه
عشان كده معظم الأنظمة بتلغي أي OTP قديم بمجرد ما تطلع اي OTP جديد.
يعني أول ما نطلع OTP جديد.
نروح لكل الأكواد القديمة الخاصة بنفس المستخدم.
ونعلمها:
Expired = true
أو نحذفها كلها.
بحيث يفضل OTP واحد فقط صالح للاستخدام.
طيب مشكلة تانية.
لو اليوزر ضغط Send OTP عشر مرات خلال دقيقة واحدة؟
الموضوع شكله عادي.
لكن كل ضغطة معناها Email أو SMS جديد.
يعني شخص واحد يقدر يستهلك جزء كبير من موارد النظام.
أو حتى يعمل Spam على بريد شخص تاني.
عشان كده بنضيف
Rate Limiting
يعني
لما اليوزر يطلب OTP.
نسجل وقت آخر طلب له.
ولو حاول يطلب OTP جديد قبل دقيقة مثلا
نرفض الطلب ونقوله: حاول مرة أخرى بعد 60 ثانية.. كل سنه وانت طيب
طيب تعال نفكر في مشكلة تانيه.
الـ OTP غالبا بيكون 6 أرقام.
يعني مليون احتمال بس
طب لو شخص بدأ يجرب أكواد بشكل عشوائي؟
000001
000002
000003
000004
في النهاية في احتمال يجيب الكود الصح.
خصوصا لو انت. مديله عدد محاولات غير محدوده.
عشان كده بنحدد عدد محاولات.
مثلاً:
FailedAttempts = 0
وكل مرة المستخدم يدخل OTP غلط.
نزود العداد.
ولما يوصل إلى 5 محاولات فاشلة.
نلغي الـ OTP بالكامل.
حتى لو كان الكود الصحيح.
ونجبر المستخدم يطلب OTP جديد.
طيب سؤال.
إنت بتخزن الـ OTP فين؟
ناس كتير تخزنه في قاعدة البيانات.
وده شغال عادي .
لكن تعال نفكر.
الـ OTP عمره أصلا 5 دقائق.
فهل منطقي نخزن ملايين الأكواد داخل قاعدة البيانات؟
وتروح تعمل عمليات مانول وتمسحه؟
عشان كده أنظمة كتير بتستخدم
Redis
أو أي Distributed Cache.
فنخزن مثلا
UserId = 10
OTP = 123456
Expiration = 5 Minutes
وبعد 5 دقائق
Redis يحذف الكود لوحده
من غير Cleanup Job
ومن غير ما تكبر قاعدة البيانات بسبب بيانات مؤقتة.
طيب سؤال صعب شوية.
المستخدم كتب OTP صحيح.
وضغط Verify.
لكن بسبب مشكلة في الإنترنت.
أو بسبب Double Click.
وصل نفس الطلب مرتين للسيرفر.
لازم تتاكد ان مفيش اي مشكله هتحصل.. انت خلاص غيرت.
طيب مشكلة أخيرة
المستخدم غير الباسورد بنجاح.
هل كده الحساب بقى آمن؟
مش بالضرورة.
تخيل إن attacker كان بالفعل داخل الحساب.
وعنده Refresh Token شغال.
هيفضل يستخدم الحساب عادي.
رغم إن الباسورد اتغير.
عشان كده بعد نجاح Reset Password.
معظم الأنظمة بتروح لكل Refresh Tokens الخاصة بالمستخدم.
وتعلمها
Revoked = true
وبالتالي أي جهاز قديم يحاول يعمل Refresh.
هيتم رفضه فوراً.
ويضطر يعمل Login من جديد.
في النهايه
ميزة Forgot Password شكلها مجرد شاشة فيها Email و OTP.
لكن خلف الكواليس فيها مشاكل زي:
Race Conditions
Brute Force Attacks
Spam Abuse
Replay Attacks
Session Hijacking
والفرق بين واحد يعمل شاشة Reset Password..
ومهندس يبني Password Recovery System فعلاً.
بيظهر في التفاصيل
المصدر | 691 |
