فرهاد اشتری
4 سال پیش توسط فرهاد اشتری مطرح شد
4 پاسخ

جلوگیری از دانلود فایل ها توسط افرادی که احراز هویت نشده اند

سلام دوستان. خسته نباشید و وفتتون بخییر
فرض کنبم که من یک وبسایتی دارم که با لاراول نوشته شده و در اون فایل هایی به فروش میرسه. اگر بخوایم از دانلود فایل ها توسط افرادی که اون ها رو خریداری نکردن جلوگیری کنبم کافیه که فایل ها رو در لاراول در دایرکتوری storage قرار بدبم و توسط یک روت که میدلور auth رو داره به اون فایل دسترسی غیر مستقیم بدیم.
ولی اگه فایل ها روی یک سرور دانلود قرار داشته باشه چی؟؟؟ این مساله در لاراول چطور پیاده سازی میشه و چطور می تونیم از دانلود فایل ها توسط افرادی که اون ها رو خریداری نکردن جلوگیری کنبم؟
ممنون از وقتی که میذارید
@hesammousavi


ثبت پرسش جدید
moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 4 سال پیش آپدیت شد
0

سلام
روی خود لاراول که می تونید با signed route ها این کار رو انجام بدید. اما روی هاست دانلودی که دیتابیس نداره و نمیشه لاراول نصب کرد باید خودتون اسکریپت نویسی کنید با php من خودم روی این موضوع کار کردم همین مشکل رو داشتم اما تنها راهی که به ذهنم رسید وجود این هست که جدول کاربرها رو با json روی هاست دانلود منتقل کنید و یه جای امن نگه دارید و براساس اون اسکریپتی رو بنویسید که لینک های زماندار امن به وجود بیاره. در غیر این صورت باید روی هاست دانلود نیز لاراول داشته باشید. اگه دوستان نظری دارن مطرح کنن که ببینیم میشه این موضوع رو حل کرد.
@farhadkb6868
@juza66


codex68
@hunt.coders1989 4 سال پیش مطرح شد
0

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


محمدسجاد دباغ
تخصص : برنامه نویس لاراول
@mdabbagh 4 سال پیش مطرح شد
0

سلام!
تاحالا سرور دانلود رو جداگانه استفاده نکردم
اما

طبق صحبت های شما که میشه روی سرور دانلود اسکریپت نوشت ، به نظرم میشه این شکلی عمل کرد
1- در header درخواست هایی که از سمت سرور اصلی به سرور دانلود میفرستیم یک token حاوی یک متغیر boolean بفرستیم که این متغیر بعد از احراز هویت در سمت سرور اصلی true بشه
2- در سمت سرور دانلود تنها این token را بازیابی کنیم و در صورتی که true بود اجازه دانلود داده بشه.
3- و برای امنیت بیشتر هم میشه تنظیم کرد که فقط درخواست api از یک ip خاص دریافت بشود.

مابقی دوستان لطفا در مورد تحلیلم نظر بدهند متشکرم.


moha li
تخصص : توسعه دهنده لاراول و Vue
@mohaligateway 4 سال پیش آپدیت شد
0

مطابق گفته دوستمون @msdabbagh
مشکل اصلی اینجاست که چه جوری در سمت هاست دانلود احراز هویت انجام بشه چون اونجا دیتابیس نداریم. از سمت سرور درخواست رو به سمت هاست دانلود می فرستیم اما در سمت هاست دانلود از کجا می تونیم متوجه بشیم که این کاربر همان کاربر هست ؟ میشه یک سری اطلاعات رو از طریق json در هاست دانلود ذخیره کرد اما دو مشکل وجود داره.
یکی امنیت این اطلاعات و رد و بدل شدن بین سرور و هاست و یکی این که اگر چند صد هزار کاربر داشته باشی این قدر حجم فایل بالا می ره که بعد از یه مدت کلا هاست دانلود down میشه.

ابتدا به ساکن شما می تونید زمانی که درخواست برای دانلود فرستاده شد با استفاده از ریموت دانلود فایل رو منتقل کنید به هاست خودتون

اگر حجم فایل زیاد باشه که کلا پهنای باند رو تموم می کنه. تازه اگر این قدر فضا روی سرور داشتیم که هاست دانلود نمی خریدیم. @hunt.coders1989


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

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