Zerious San نشر 13 ديسمبر 2025 أرسل تقرير نشر 13 ديسمبر 2025 كيف اسمح للAPI فقط للحصول على المعلومات او ارسال المعلومات, و منع المستخدم من الدخول بالمتصفح فقط يستطيع ارسال او استقبال البيانات من API الخاص بالموقع؟ 2 اقتباس
1 محمد عاطف25 نشر 13 ديسمبر 2025 أرسل تقرير نشر 13 ديسمبر 2025 لا يمكنك منع المتصفح 100% وجعل الوصول حصريًا لل API فقط وهذا بسبب أن: أي متصفح يستطيع إرسال Requests مثل أي API Client. Postman و fetch و axios و curl هي كلها HTTP Requests في النهاية يتم إرسالها . ولكنك تستطيع التحكم بمن يُسمح له باستخدام ال API وتمنع الاستخدام العشوائي أو غير المصرح به. ويمكنك إستخدام المصادقة لفعل هذا الأمر فيجب أن يتم إرسال token وتقوم بالتحقق به وإم بالسماح أو رفض الطلب . وأشهر الطرق هي : JWT Token. OAuth2. API Key. أو يمكنك إستخدام ال cors وهو السماح فقط بالطلبات من مواقع معينة . فمثلا لو تم إرسال الطلب من موقع x مثلا وأنت لم تسمح بالموقع x بهذا الأمر لن يتم إستقبال الطلب وسيتم إعادة خطأ cors . 1 اقتباس
1 ياسر مسكين نشر 16 ديسمبر 2025 أرسل تقرير نشر 16 ديسمبر 2025 وعليكم السلام ورحمة الله تعالى وبركاته، من المستحيل تقنيا منع المتصفح تماما من الوصول إلى API في Laravel لأن المتصفح وأي API Client آخر مثل Postman أو تطبيقات الهاتف أو curl يستخدمون نفس بروتوكول HTTP/HTTPS وأي طلب يمكن محاكاته من أي أداة. الحل الصحيح هو تأمين API بدلا من محاولة حظر نوع معين من العملاء وذلك عبر تطبيق المصادقة (Authentication) باستخدام Laravel Sanctum للتطبيقات البسيطة و SPAs والتطبيقات التي تملكها بالكامل أو Laravel Passport إذا كنت تحتاج OAuth2 الكامل للتطبيقات الخارجية التابعة لجهات ثالثة. أي يجب أن تفرض على كل الطلبات إرسال Token صالح في ال Authorization header مع تطبيق التفويض (Authorization) عبر Policies وGates للتحكم الدقيق في الصلاحيات واستخدام CORS لتحديد النطاقات المسموح لها بالوصول مع العلم أن CORS يُطبق فقط من المتصفحات وليس من أدوات مثل Postman بالإضافة إلى تفعيل HTTPS + HSTS لتأمين النقل وتشفير البيانات الحساسة ومراقبة السجلات (Logging) لرصد المحاولات المشبوهة. اقتباس
0 Sherif Aboghazala نشر 18 ديسمبر 2025 أرسل تقرير نشر 18 ديسمبر 2025 لا يمكنك تقنيًا منع المتصفح من الوصول إلى الـ API بشكل كامل، لأن الـ API في النهاية يعمل عبر HTTP، والمتصفح يستطيع إرسال طلبات HTTP مثل أي عميل آخر. لكن يمكنك جعل الوصول المباشر من المتصفح عديم الفائدة وغير مسموح عمليًا. التوضيح والحل يكون كالتالي: أولًا: اجعل كل الـ API محميًا بالتحقق من الهوية (Authentication) أي endpoint مهم يجب ألا يُرجع بيانات إلا إذا أُرسل معه: Token (مثل JWT) أو Session صالحة بدون ذلك: يرجع 401 Unauthorized حتى لو فتح المستخدم الرابط مباشرة في المتصفح ثانيًا: استخدم الصلاحيات (Authorization) ليس كل مستخدم له نفس الحق في الوصول. تحقق من الدور (role) داخل السيرفر: مستخدم مشرف نظام داخلي وأي طلب بلا صلاحية يرجع 403 Forbidden. ثالثًا: تقييد CORS هذا يمنع أي موقع آخر من استهلاك الـ API من المتصفح. تسمح فقط لنطاق واجهتك الأمامية. هذا لا يمنع الطلبات تمامًا، لكنه يمنع الاستخدام غير المصرح من المتصفحات. رابعًا: لا تُرجع صفحات HTML الـ API يجب أن يُرجع: JSON فقط Status Codes واضحة عند فتح الرابط في المتصفح سيظهر JSON غير مفيد للمستخدم العادي. خامسًا: استخدم Middleware للحماية أي endpoint حساس يمر عبر Middleware للتحقق من: التوكن الصلاحيات صحة البيانات سادسًا: Rate Limiting لتقليل: التخمين التجربة العشوائية إساءة الاستخدام الخلاصة المهمة جدًا لا تحاول منع المتصفح نفسه، بل: امنع أي طلب غير موثوق اجعل أي وصول بلا توكن أو صلاحية مرفوضًا واجعل الـ API “مفتوح شكليًا، مغلق فعليًا” بهذا الشكل: المستخدم لا يستفيد من فتح الرابط مباشرة والـ API يعمل فقط مع الواجهة أو العملاء المصرّح لهم اقتباس
السؤال
Zerious San
كيف اسمح للAPI فقط للحصول على المعلومات او ارسال المعلومات, و منع المستخدم من الدخول بالمتصفح فقط يستطيع ارسال او استقبال البيانات من API الخاص بالموقع؟
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.