محمد معین بابائی
4 سال پیش توسط محمد معین بابائی مطرح شد
11 پاسخ

ایا فایل های لاراول بر روی یک سایت واقعی قابل نمایش هست

سلام دوستان می خواستم بدونم مثلا دایرکتوری پابلیک و ... رو اگر کسی در هاست واقعی جستجو کند می تواند محتویات ان را مشاهده کند؟
و خوشحال میشم که تمام دسترسی های کاربر به لاراول رو توضیح بدین و بگین چه عیب هایی داره و چجوری درست میشه؟
@hesammousavi @ali.bayat @mohsenbostan


ثبت پرسش جدید
محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@moeinbabaei
سلام.
تنها دایرکتوری که به صورت عمومی باید در دسترس باشه، public هستش. یعنی سرور باید محتویات داخل public رو اجرا کنه و به غیر از اون هیچ کس نباید دسترسی به غیر از اون داشته باشه.


محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
0

@mohsenbostan
یعنی ما باید کاری کنیم که کسی دسترسی نداشته باشه یا به صورت خودکار خود لاراول این کار رو می کنه


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
0

@moeinbabaei
لاراول که خودش نمی تونه چنین کاری بکنه. شما باید وب سرور رو در حالتی کانفیگ کنید که IP به دایرکتوری public اشاره کنه.


محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
0

@mohsenbostan
خب دوست عزیز سوال منم همینه از کجا کانفیگ کنم چون من هیچ وقت کانفیگ نکرده امپ!
خوشحال میشم کمکم کنی


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش آپدیت شد
1

سلام در لاراول پوشه ای هست به نام storage هر فایلی که عموم کاربران نباید بهش دسترسی داشته باشن و فایل های مهمی هستن مثل ویدیوهای آموزشی در مسیر storage/app ذخیره میشن و فقط قابل دانلودن و میشه برایشون لینک دانلود با زمان معین تعیین کرد و هر زمان که فایلی خریداری شده لینک دانلود زمانداری از اون فایل تولید و به کاربر میدی .
البته شما میتونید فایل هایی که برای عموم قابل دسترس و مشاهده اندو در پوشه storage در مسیر storage\App\public قرار بدی و مثل پوشه public بهشون دسترسی داشته باشی . البته بعد اجرای دستور php artisan storage:link
مستندات لاراولشم اینجاست
https://laravel.com/docs/7.x/filesystem


علیرضا
@AliRezaa 4 سال پیش مطرح شد
1

سلام، اگر سوالتون رو درست متوجه شده باشم ، اغلب موقع آپلود، پوشه های پروژه یک level عقب تر از پوشه عمومی host (یعنی قبل از پوشه public_html) آپلود میشه (همونجایی که هاست ها مینویسن DON'T UPLOAD HERE !! ) ؛ و فقط پوشه public پروژه تون رو در پوشه public_html آپلود میکنین. اینطوری بحث دسترسی به پوشه های غیرعمومی هم تا حد زیادی مرتفع میشه.


محسن بستان
تخصص : Senior Backend Developer
@mohsenbostan 4 سال پیش مطرح شد
1

@moeinbabaei
بستگی داره. اگر وب سرور تون Apache باشه، نیازی به کار خاصی نیست. اما اگر Ngnix هستش می تونید از کانفیگ زیر استفاده کنید:

server {
    listen 80;
    server_name example.com;
    root /srv/example.com/public;

    add_header X-Frame-Options "SAMEORIGIN";
    add_header X-XSS-Protection "1; mode=block";
    add_header X-Content-Type-Options "nosniff";

    index index.php;

    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    error_page 404 /index.php;

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.(?!well-known).* {
        deny all;
    }
}

مستندات خود لاراول رو هم یه نگاهی بندازید بد نیست.


محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
0

@AliRezaa این کار مگه ممکنه؟؟؟


محمد معین بابائی
تخصص : Web developer
@moeinbabaei 4 سال پیش مطرح شد
0

@mohsenbostan خوب باید از هاستینگ بپرسیم که نوع هاست چیه؟
و این که این کد رو باید کجا گذاشت
خیلی ممنون که کمک کردی


mahdi khanzadi
تخصص : backend developer at Snapp mar...
@khanzadimahdi 4 سال پیش مطرح شد
0

@mohsenbostan @moeinbabaei

اگه هاست شما Cpanel ارائه میده میتونید با سی پنل domain path رو مشخص کنید بگید به پوشه پابلیک اشاره کنه.

اما به هر حال میتونید نام پوشه ی public رو به public_html تغییر بدید و پروژه ی خودتون رو زیپ کنید و بیرون از پوشه public_html درون سرور از حالت فشرده خارج کنید. با اینکار محتوای فایل public_html پوشه ی لاراول شما درون public_html سرور قرار میگیره و باقی محتوا بیرون از public_html میمونه و چون به صورت دیفالت دامین به public_html اشاره میکنه باعث میشه کسی دسترسی به سورس های لاراول شما نداشته باشه.


مهدی
@mahdi313 4 سال پیش مطرح شد
0

سلام

دیدم فایلهای لاراول رو میریزن توی فولدر جدا مثلا core در public_html و فایلهای public رو در همون public_html قرار میدن..
دوستان کانفیگ این چطوریه؟


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام