Zerious San نشر منذ 15 ساعة أرسل تقرير نشر منذ 15 ساعة في laravel استخدمت cursorPaginate و عندما استخدمت orderby(id) يسوي حق الصفحة القادمة encode حق المعلومات الي بيبدا فيها و جربت اسوي decode في احد المواقع و اظهر لي id حق الصف. هل يعتبر غير امن معرفة id ام يكون اعتمادا على نوع المشروع؟ 2 اقتباس
0 عبد الوهاب بومعراف نشر منذ 14 ساعة أرسل تقرير نشر منذ 14 ساعة السلام عليكم ورحمة الله، كشف ال ID في cursorPaginate لا يعتبر خطرًا أمنيا مباشرا خاصة حينما يكون لدينا تحكم صحيح بالصلاحيات (Authorization) لكنه يعتمد على نوع المشروع أيضا. بخصوص الترميز في Laravel فهو لإخفاء تفاصيل التنفيذ وليس للأمان الحقيقي فالأمان الفعلي يأتي من التحقق من صلاحيات المستخدم قبل السماح له بالوصول للبيانات والمخاطر الرئيسية هي: كشف حجم قاعدة البيانات للمنافسين إمكانية تخمين IDs أخرى والوصول غير المصرح له إذا كانت الصلاحيات ضعيفة الاعتماد الشديد على بنية قاعدة البيانات لذا فالحل الأمثل هو استخدام UUIDs بدلا من IDs وتطبيق فحص صلاحيات صارم على كل عملية والاعتماد على الأمان الحقيقي وليس إخفاء المعلومات فقط. اقتباس
0 محمد_عاطف نشر منذ 14 ساعة أرسل تقرير نشر منذ 14 ساعة إن ال base64 هذا ليس تشفير آمن بل هو مجرد encoding عادي أي أنه أى حد يستطيع معرفة عمل decode له وإكتشاف البيانات . أما الإجابة على سؤالك فهي تعتمد تماما على نوع المشروع وطبيعة البيانات. فمثلا لو ال ID لديك متسلسل (auto-increment) وال routes لديك مفتوحة أو محمية بحماية ضعيفة فالمهاجم يستطيع عمل ID enumeration attack بسهولةوالتعرف على الصفحات وإكتشاف الثغرات أو التحكم في المشروع إذا لم يكن مؤمن بشكل كامل. لذلك الأفضل إستخدام UUID هكذا مثلا : $table->uuid('id')->primary(); فأغلب المشاريع الكبيرة حاليا تستخدم UUID + cursor pagination بدون أي قلق من الأمان. اقتباس
السؤال
Zerious San
في laravel استخدمت cursorPaginate و عندما استخدمت orderby(id) يسوي حق الصفحة القادمة encode حق المعلومات الي بيبدا فيها و جربت اسوي decode في احد المواقع و اظهر لي id حق الصف. هل يعتبر غير امن معرفة id ام يكون اعتمادا على نوع المشروع؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.