راکت

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

11 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

11
محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

محمد معین بابائی
محمد معین بابائی
@moeinbabaei

تخصص: Web developer

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

شاید پاسخ شما همین‌جا باشد

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

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

محمد معین بابائی
محمد معین بابائی
@moeinbabaei

تخصص: Web developer

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

حسین شیری نژاد
حسین شیری نژاد
@hosseinshirinegad98

تخصص: programmer

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

علیرضا
علیرضا
@AliRezaa

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

محسن بستان
محسن بستان
@mohsenbostan

تخصص: Senior Backend Developer

@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;
    }
}

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

محمد معین بابائی
محمد معین بابائی
@moeinbabaei

تخصص: Web developer

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

محمد معین بابائی
محمد معین بابائی
@moeinbabaei

تخصص: Web developer

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

mahdi khanzadi
mahdi khanzadi
@khanzadimahdi

تخصص: Software engineer

@mohsenbostan @moeinbabaei

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

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

مهدی
مهدی
@mahdi313

سلام

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

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

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