قائمة مراجعة الكود الناتج بالذكاء الاصطناعي محمد شرف الدين — mohamadcharafeddine.com/ar/resources/ai-code-review-checklist/ ======================================== ── قبل المراجعة ── // GET /api/bookings/:id app.get('/api/bookings/:id', async (req, res) => { const booking = await db.bookings.findById(req.params.id); // [1] res.json(booking); // [2] }); const SMS_API_KEY = 'sk_live_EXAMPLE_ONLY'; // [3] ── بعد المراجعة ── // GET /api/bookings/:id app.get('/api/bookings/:id', requireLogin, async (req, res) => { // [1] const booking = await db.bookings.findById(req.params.id); if (!booking || booking.patientId !== req.user.id) { // [2] return res.status(404).json({ error: 'Not found' }); } res.json({ // [3] id: booking.id, date: booking.date, status: booking.status, }); }); const SMS_API_KEY = process.env.SMS_API_KEY; // [4] ── قبل المراجعة ── // POST /api/contact app.post('/api/contact', async (req, res) => { const { name, phone, message } = req.body; // [1] await db.query( "INSERT INTO messages (name, phone, message) VALUES ('" + name + "', '" + phone + "', '" + message + "')" // [2] ); res.send('Thanks ' + name); // [3] }); ── بعد المراجعة ── // POST /api/contact (rateLimit: illustrative, use your framework's limiter) app.post('/api/contact', rateLimit({ max: 5, perMinutes: 10 }), async (req, res) => { const name = String(req.body.name || '').trim(); // [1] const phone = String(req.body.phone || '').trim(); const message = String(req.body.message || '').trim(); const phoneOk = /^[0-9+ ]{7,20}$/.test(phone); if (!name || name.length > 80 || !phoneOk || message.length > 1000) { return res.status(400).json({ error: 'invalid_input' }); } await db.query( // [2] 'INSERT INTO messages (name, phone, message) VALUES ($1, $2, $3)', [name, phone, message] ); res.json({ ok: true }); // [3] }); ── برومبت مراجعة الكود ── راجع الكود التالي كمراجع أمان صارم. لا تعِد كتابته كاملًا. 1) اشرح ما يفعله في 5 أسطر. 2) لكل مسار: هل يتحقّق من تسجيل الدخول؟ من الملكية أو الدور؟ 3) أين تُستخدم مدخلات المستخدم دون تحقّق أو دون تهريب؟ 4) هل توجد أسرار أو إعدادات مكتوبة في الكود؟ 5) ماذا يحدث عند فشل كل عملية خارجية؟ 6) ما الاختبارات الثلاثة الأهم التي تنقص؟ رتّب الملاحظات من الأخطر إلى الأقل، واذكر رقم السطر. الكود: [الصق الكود بعد استبدال أي مفتاح أو بيانات حقيقية بقيم وهمية]