آفلاین
user-avatar

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

2 سال پیش
توسط Igo آپدیت شد
آفلاین
user-avatar
Hamid Reza Maleki ( 1240 تجربه )
2 سال پیش

سلام. من وب سایتی دارم که یک سری فایل را میخوام برای فروش بذارم. برای فایل ها هاست دانلود تهیه کردم. (سایت من روی یک هاست اشتراکی قرار داره و فایل های من روی هاست دانلود). در مورد فایل های رایگان مشکلی نیست اما در مورد فایل های پولی مشکل اینه که ممکنه کاربر آدرس لینک مستقیم را بدست بیاره و زحمات من از بین بره. چه راهی برای محدود کردن دانلود فایل های پولی از هاست دانلود وجود داره که فقط کسایی که پول میدند به اون ها دسترسی داشته باشند. خواهشا کمک کنید

بهترین پاسخ انتخاب شده توسط Hamid Reza Maleki
آفلاین
user-avatar
سیدعلی موسوی
2 سال پیش

سایت dotnettips.info یک سایت دات نتی آموزشی بوده و بسیار آموزش های تخصصی در asp داره. یک ی دوسال پیش این سایت رو خیلی دنبال میکردم که دیگه اومدم سمت laravel

از این لینک درباره دانلود فایل غیرمستقیم میتونی اطلاعاتی کسب کنید

https://www.dotnettips.info/post/1411/%D9%87%D8%AF%D8%A7%DB%8C%D8%AA-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D9%81%D8%A7%DB%8C%D9%84%E2%80%8C%D9%87%D8%A7%DB%8C-%D8%A7%D8%B3%D8%AA%D8%A7%D8%AA%DB%8C%DA%A9-%D8%AF%D8%B1-asp-net-mvc-%D8%A8%D9%87-%DB%8C%DA%A9-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1
آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

سلام
راه های زیادی داری ولی بهترین راه که نیازی به برنامه نویسی نداره فایل ها رو با استفاده از برنامه WinRar فشرده کنید و رمز هم براش بزارید
کسی که محصول رو خرید رمز رو بهمراه لینک ها بهش بدید.

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

آفلاین
user-avatar
Hamid Reza Maleki ( 1240 تجربه )
2 سال پیش

سلام. ممنون از Igo@. در روش اولی که گفتید اگرچه مناسبه ولی ممکنه بخوام ویدئو ها را با یک پلیر در سایت برای کسانی که فایل را خریدند نشون بدم در این صورت باید نسخه ای از فایل به صورت غیر فشرده در هاست موجود باشه.
مورد دوم هم ممکنه کاربر را خسته کنه.
یعنی راه دیگه ای وجود نداره؟ الان این همه سایت فروش فایل چطور کار میکنند. مثلا همین راکت ؟
شاید هم سایتای این چنینی آدرس url فایل های موجود را رمزنگاری میکنند به جای اینکه فایل ها را رمزنگاری کنند!!

آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

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

آفلاین
user-avatar
Hamid Reza Maleki ( 1240 تجربه )
2 سال پیش

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

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

سلام ، بله امکان رمزنگاری url وجود داره، همه سایت ها همین کار رو میکنن ، بستگی به زبان برنامه نویسی داره شما چه زبان یا چه فریمورکی کار میکنید تا راه حلش رو پیدا و بهتون بگم.

  • در لاراول میتونید از آموزش لاراول مهندس موسوی در همین سایت راکت استفاده کنید که خیلی آسون روش هش کردم url و دانلود کردن رو آموزش دادند
آفلاین
user-avatar
Hamid Reza Maleki ( 1240 تجربه )
2 سال پیش

سلام. واقعا لطف میکنید. من از asp.net mvc استفاده میکنم. میشه در مورد هش کردن آدرس بیشتر توضیح بدید

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

سایت dotnettips.info یک سایت دات نتی آموزشی بوده و بسیار آموزش های تخصصی در asp داره. یک ی دوسال پیش این سایت رو خیلی دنبال میکردم که دیگه اومدم سمت laravel

از این لینک درباره دانلود فایل غیرمستقیم میتونی اطلاعاتی کسب کنید

https://www.dotnettips.info/post/1411/%D9%87%D8%AF%D8%A7%DB%8C%D8%AA-%D8%AF%D8%B1%D8%AE%D9%88%D8%A7%D8%B3%D8%AA-%D9%81%D8%A7%DB%8C%D9%84%E2%80%8C%D9%87%D8%A7%DB%8C-%D8%A7%D8%B3%D8%AA%D8%A7%D8%AA%DB%8C%DA%A9-%D8%AF%D8%B1-asp-net-mvc-%D8%A8%D9%87-%DB%8C%DA%A9-%DA%A9%D9%86%D8%AA%D8%B1%D9%84%D8%B1
آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

یکی دوروش دیگه هست امشب برات میگم

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

لینک زیر دقیقا این کار شما رو پیاده کرده

https://barnamenevisan.org/Articles/Article3619.html

تحلیل میشه :
ساخت یک روت که یه مقداری بگیره (ادرس هش شده که حاوی تاریخ و کلید فایل و.. باشه که با تابع hash اون رو هش کردی) بعدش اکشن که مقدار هش شده رو بگیره و انهش کنه و اون کد رو تویی دیتابیس سرچ کنی و اگر کاربر اون رو خریداری کرده فایل براش ریترن بشه که من چک کردم فقط متود اکشن در دانلود منیجر و منیجر کروم قابل مشاهده هست که اکر هرکسی اونم بزنه چون شما بعد از انهش کرد سرچ میکنی ببینی کاربر لاگینه اکر لاگینه اینا فایل رو خریده و اگر اره فایل رو بهش میدی در غیر اینصورت غیرقابل دسترس هست فایلتون. این ادرس هش شده هم هربار تغییر میکنه ولی وقتی انهش بشه اون کلید یا اون مقداری که قرار بره تویی دیتابیس سرچ بشه همیشه در دسترسه

آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

@hamid.r.m25
سال 2014 قابلیت FileStore که برای ذخیره فایل های حجم بالا در دیتابیس به sqlServer اضافه شد که کاملا فایل ها توسط سیستم عامل مدیریت میشه و سرعت بالایی داره. که همچین معادلی هم در mySql وجود داره. جسارتا یه مقدار مطالعه کنید.

سایت ها دیگه هم که میبینی url هر دفعه عوض میشه در واقع url عوض نمیشه و قسمتی از url عوض میشه که بهش میگن QueryString یا یک سگمنت از روت هست که عوض میشه . شما توی هایست دانلودی امکان برنامه نویسی ندارید. اگر امکان برنامه نویسی داشته باشید میتونید که از این روش استفاده کنید.

@juza666
چطوری میخوای مقدار هش رو آنهش کنی؟؟؟ مقدار هش قابل برگشت نیست اصلا.توابع هش رمزنگاری یکطرفه هستند باید از رمزنگاری 2 طرفه استفاده بشه.

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

@Igo
سلام دوست عزیز استفلاده کردم در سایت هام
ذر آموزش اقای موسوی روشش رو گفته است

در سایت زیر مثال هش و انهش کردن هست
https://md5hashing.net/hash/

آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

@juza666
بله ممنون که گفتی منم از این به بعد استفاده میکنم. :-|

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

@Igo
خیلی از تایپیک هات رو دیدم و متوجه هستم بلدی ولی هش کردن یه متن به عنوان متغییر روت و انهش کردنش اینقدر هم که فکر میکنی پیچیدگی نداره که درکش سخت بشه برات، اینکریپت ، هش و.. رو میدونم اینقدر که سخت فکر نکن :|

آفلاین
user-avatar
سیدعلی موسوی ( 107573 تجربه )
2 سال پیش
تخصص : سی شارپ و پی اچ پی

درباره ذخیره کردن فایل FileStore بگم که هیچ کسی نمیاد فایل حجیم رو تویی دیتابیس ذخیره کنه چون طرف میخواد در صورت خریداری شدن فایل بتونه پلیر رو تویی صفحه نشون بده و من 10سال نرم افزارهای تحت شبکه کارمیکنم و خیلی برای ذخیره شدن فایل تویی sql تحقیق کردم و خیلی مسئله ذخیره شدن و برگشت فایل های حجیم روی تویی دیتابیس پیشنهاد ندادن.

آفلاین
user-avatar
Igo ( 3869 تجربه )
2 سال پیش

@juza666
دوست عزیز هش یک رشته یا کد محاسبه شده از روی بیت هاس که سایز مشخصی داره و این سایز به الگوریتم که انتخاب کردیم بستگی داره و وقتی محاسبه میشه بصورت یکطرفه اس یعنی با داشتن هش نمیتونیم به مقدار اصلی برگیردیم و منحصر به فرد هم است یعنی اگر 1بیت عوض بشه مقدار هش تولید شده هم عوض میشه و امکان تولید کد های تکراری ب هیچ عنوان وجود نداره و اگر 2تا مقدار به یک انداره تولید شد (2 مقدار یکسان) بدون هیچ تردیدی این 2تا با هم برابر هستند.

الگوریتم های زیادی برای رمزنگاری هش وجود داره که به 2 دسته هش سریع و هش کند تقسیم میشند:

1-هش سریع مانند MD5 که امنیت بالایی نداره و تقریبا میشه گفت که شکسته شده و برای رمزنگاری نباید استفاده بشه. اغلب برای پیدا کردن مقدار های یکسان استفاده میشه. مثلا برنامه های که فایل های تکراری رو از روی هارد حذف میکنند دقیقا هش فایل ها رو حساب میکنن و تکراری هارو حذف میکنند.

2-هش کند مانند SHA1 و SHA348 و SHA512 و ... که برای زمانی که نیاز به برگشت به مقدار اصلی نداریم استفاده میشه مانند ذخیره رمز عبور کاربر در دیتابیس.

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

1-الگوریتم های متقارن توسط 1 کلید رمزنگاری میشوند و با همون کلید هم رمزگشایی میشن مانند الگوریتم DES

2-الگوریتم های نامتقارن الگوریتم های هستند که 2 کلید عمومی و خصوصی دارند. کلید عمومی در اختیار همه قرار دارد و برای رمزنگاری استفاده میشود و کلید خصوصی رو هر کسی داشته باشه میتونه رمزگشایی رو انجام بده. دقیقا سرتیفیکیت ها (Certificate) که بعنوان ssl خریداری میکنیم از همین نوع رمزنگاری استفاده میکنند و 2 کلید عمومی و خصوصی در اختیار شما میزارن.البته خودمون هم میتونیم برای خودمون سرتیفیکیت صادر کنیم.

امیدوارم که مطلب مفیدی باشه.

برای ارسال پاسخ باید وارد سایت شوید