الترتيب وحدود أمانه
في هذا الدرس 4 موضوعات
هذا الدرس مخطط له. يعرض المخطط أدناه الموضوعات التي سيغطيها، ولم يُنشر الدرس الكامل بعد.
نص الدروس والتمارين باللغة الإنجليزية، بينما تبقى واجهة الموقع وعناوين الدروس بالعربية.
في هذا الدرس
allow sorting without opening a hole.
الموضوعات المخطط لها
- Format:
?sort=price,desc. Default to a stable sort such asid. - Accept only an allow-list of fields:
name,price,createdAt. - Never put the user's text into a query or column name; with a database that is SQL injection.
- Unknown field gives
400with a clear message. - Always add a tie-breaker (
id) so pages do not repeat or skip items.
تفاصيل المخطط المبدئي
عرض عملي
private static final Set<String> SORTABLE = Set.of("name", "price", "createdAt");
if (!SORTABLE.contains(field)) throw new BadRequestException("Cannot sort by " + field);اختبر فهمك
Why an allow-list?
أظهر الإجابة
Users must not choose arbitrary fields or columns.
التطبيق
طبّق هذا الدرس بمختبر الوحدة وتمارينها واختبارها.
تعليم الدرس كمكتمل اختياري ويمكنك التراجع عنه في أي وقت. يبقى تقدمك محفوظًا في هذا المتصفح.