اذهب إلى المحتوى

السؤال

نشر

بعد أن قمت برفع مشروع لارافيل إلى خادم الويب، لاحظت أنه يمكن لأي مستخدم بسهولة الوصول إلى أي ملف موجود ضمن مجلّد المشروع مباشرةً عن طريق شريط العنوان. فلقد قمت بتجربة الرابط التالي على الموقع:

http://example.com/composer.json

واستطعت الوصول إلى محتويات الملف وهكذا لباقي الملفات. كيف يمكنني منع الوصول إلى هذه الملفات في لارافيل؟

Recommended Posts

  • 1
نشر

إن المشكلة هنا في إعدادات خادم الويب، فلا يجب أن تكون الملفات خارج مجلّد public مرئية أو قابلة للوصول من قبل المستخدم.

في حال كان خادم الويب من نوع Apache يجب إجراء التعديلات التالية:

DocumentRoot "/path_to_laravel_project/public"
<Directory "/path_to_laravel_project/public">

بحيث تكون DocumentRoot و Directory موجّهة إلى مجلّد public داخل المشروع، أما في الخوادم من نوع nginx:

root /path_to_laravel_project/public;

وبعد هذه التعديلات جميع ملفات لارافيل خارج مجلّد public لن تكون مرئية عن طريق متصفح الويب أبداً.

  • 0
نشر

لحل هذا الإشكال سيتعين عليك إضافة هذا الكود إلى ملف htaccess:

# Disable Directory listing
Options -Indexes

# block files which needs to be hidden, specify .example extension of the file
<Files ~ "\.(env|json|config.js|md|gitignore|gitattributes|lock)$">
    Order allow,deny
    Deny from all
</Files>

# in here specify full file name sperator '|'
<Files ~ "(artisan)$">
    Order allow,deny
    Deny from all
</Files>

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...