PDA

View Full Version : حرفه ای: ساخت لینک دانلود



MeSaeid
پنج شنبه 06 شهریور 1393, 22:32 عصر
سلام
من میخوام تو سایتم یک فایل رو برای دانلود بزاریم و میخوایم یوزر به صورت وی ای پی از اون استفاده کنه ، هنگام دانلود اگه یوزر وی ای پی نباشه باید توی اون لینک حالا به صورت هش شده نوع کاربر رو بفرستیم و سمت سرور لینک پردازش میشه و فایل میره برای دانلود خوب مشکل من اینجاس به چه صورت لینک رو درست کنیم و سمت سرور چطور باید پردازش شه ؟ ( به صورتی که کاربر متوجه مسیر فایل نشه ) !!

مهرداد سیف زاده
پنج شنبه 06 شهریور 1393, 23:49 عصر
فایل رو باید بصورت لینک موقت در بیارید و همچنین دسترسی به اون لینک رو برای کاربر خاصی در نظر بگیرید. به دو دلیل میگم لینک موقت:
۱- کاربری که فایل رو خریده میتونه لینک رو برای دوستانش ارسال کنه و اونا هم فایل رو دانلود کنن. پس برای امینت بیشتر میتونید فایل رو برای کاربر لینک منحصر به فرد درست کنید که مدت زمان ذاره و بعد از مدت مورد نظر دیگر اعتباری نخواهد داشت.
۲- امنیت فایل دانلودی به معتبر بودن کاربر ربط داره که این فقط شامل کاربران لاگین نیست بلکه باید کاربر برای اون معتبر باشه.
این کار بهتره با دیتابیس صورت بگیره. شما فایل اصلی در پوشه زیر هست:
file/base
و حالا در دیتابیس کاربر این فایل رو خرید یا حالا قراره این فایل به کاربری تعلق بگیره شما توی دیتابیس یه جدول درست میکنید بصورت زیر:
۱- id یا نام کاربر یا هر چیزی که کاربر رو بشناسید باهاش
۲- زمان تهیه فایل
۳- زمان اتمام معتبر بودن(مثلا قراره این لینک تا ۲۴ ساعت برای این کاربر اباشه)
۴- لینک فایل برای این کاربر
۵- ipکاربر در هنگام خرید فایل(این مورد برای امنیت بسیار بالاتر هست. اگر کاربر فایل رو بخره و بعد ارتباط اینترنت قطع بشه مشکل ساز میشه. البته با ذخیره یه مقداری هش شده در کوکی هم میتونه در اتصال بعدی موقتا ip رو نگه. مثلا کاربر دفعه بعد لاگین کرد میگه ip زمان خرید فایل این بوده)

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


http://dlfile.com/file.php?u=username&file=filename.zip&t=55524213258

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

MeSaeid
جمعه 07 شهریور 1393, 00:14 صبح
فایل رو باید بصورت لینک موقت در بیارید و همچنین دسترسی به اون لینک رو برای کاربر خاصی در نظر بگیرید. به دو دلیل میگم لینک موقت:
۱- کاربری که فایل رو خریده میتونه لینک رو برای دوستانش ارسال کنه و اونا هم فایل رو دانلود کنن. پس برای امینت بیشتر میتونید فایل رو برای کاربر لینک منحصر به فرد درست کنید که مدت زمان ذاره و بعد از مدت مورد نظر دیگر اعتباری نخواهد داشت.
۲- امنیت فایل دانلودی به معتبر بودن کاربر ربط داره که این فقط شامل کاربران لاگین نیست بلکه باید کاربر برای اون معتبر باشه.
این کار بهتره با دیتابیس صورت بگیره. شما فایل اصلی در پوشه زیر هست:
file/base
و حالا در دیتابیس کاربر این فایل رو خرید یا حالا قراره این فایل به کاربری تعلق بگیره شما توی دیتابیس یه جدول درست میکنید بصورت زیر:
۱- id یا نام کاربر یا هر چیزی که کاربر رو بشناسید باهاش
۲- زمان تهیه فایل
۳- زمان اتمام معتبر بودن(مثلا قراره این لینک تا ۲۴ ساعت برای این کاربر اباشه)
۴- لینک فایل برای این کاربر
۵- ipکاربر در هنگام خرید فایل(این مورد برای امنیت بسیار بالاتر هست. اگر کاربر فایل رو بخره و بعد ارتباط اینترنت قطع بشه مشکل ساز میشه. البته با ذخیره یه مقداری هش شده در کوکی هم میتونه در اتصال بعدی موقتا ip رو نگه. مثلا کاربر دفعه بعد لاگین کرد میگه ip زمان خرید فایل این بوده)

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


http://dlfile.com/file.php?u=username&file=filename.zip&t=55524213258

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

خیلی ممنون
خیر کاربر فقظ اکانت وی ای پی می گیره که شرایط نسبتا یکی هست در هر دو فقط موضوع اینجاس که فایل ها روس سرور جداگانه هست ( ویندوز - انجینیکس ) بنده میتونم اعتبار کاربر رو تا زمانی که رو سایت من هست چک کنم مثل وی ای پی بودن ، ایپی ، زمان اعتبار و ... ولی وقتی من لینکی به این صورت دادم به کاربر

http://dl.myfile.com/dl/download.php?fn=Filename&ut=usertype&

این به عنوان مثال بود واگر نه که راحت یوزر معمولی میتونه دانلود کنه ولی منظورم اینه که سمت سرور دانلود من نمی تونم چیزی رو چک کنم پس باید لینک بصورت هش شده جوری بفرستم ک کاربر نتونه سو استفاده کنه حالا مشکل همینه لینک باید به چه صورت باشه ؟ هش به چه صورت باشه ؟
البته خودم اینطور در نظر داشتم که وقتی یوزر سمت سایت اصلی اعتبار سنجی شد من از اونجا با CURL درخواست بدم به سرور که این فایل بره برای دانلود و دانلود بشه ( اگه امکان داره تست نکردم ) و کاربر هم هیچ وقت ادرسی جز سایت اصلی بنده رو نخواهد دید ( در واقع به سمت سرور فرستاده نمیشه در نتیجه نمی تونه سواستفاده ای بشه )

حالا ممنون میشم بفرمایید به چه صورت لینک بدم که کسی چیزی نفهمه ؟ و نظرتون در رابطه با نظر بنده

مهرداد سیف زاده
جمعه 07 شهریور 1393, 07:05 صبح
یعنی چی لینک رو نفهمه و هش بشه
شما قصد محافظت از فایل رو دارید یا محافظت از لینک رو
vip کردن کاربران برای فایل روشش همون بود که بالا گفتم و روشهای دیگر هم که دوستان دیگر هم میتونن راهنمایی کنن

MeSaeid
جمعه 07 شهریور 1393, 14:43 عصر
یعنی چی لینک رو نفهمه و هش بشه
شما قصد محافظت از فایل رو دارید یا محافظت از لینک رو
vip کردن کاربران برای فایل روشش همون بود که بالا گفتم و روشهای دیگر هم که دوستان دیگر هم میتونن راهنمایی کنن
خوب داداش لینک رو که نمی شه مخفی کرد منظورم پوشه فایل ها هست روی سرور
مثلا روش های این اسکریپت های موجود که به صورت وی ای پی عمل می کنه

مهرداد سیف زاده
جمعه 07 شهریور 1393, 15:06 عصر
شما روشی رو که گفتم باید روش کار کنید چون برای انحصار کردن فایل به کاربر از این روش استفاده میشه. هر چند میشه امنیت رو بالاتر هم برد ولی روی perfermance سایت تاثیر میزاره.
در کل همون هش کردن لینک شما همین دانلود بصورت کاربر vip هست که گفتم. همچنین وقتی هدر صفحه رو کنترل میکنید که فایل بره برای دانلود ولی لینک دانلود همین مسیر باشه. کاربر به غیر از این لینک به منبع اصلی فایل دسترسی نخواهد داشت. در واقع باید کمی در مورد پاکت بسته http تحقیق کنید و ببینید چه چیزی رو برای این کار باید دستکاری کنید

خوب داداش لینک رو که نمی شه مخفی کرد منظورم پوشه فایل ها هست روی سرور
مثلا روش های این اسکریپت های موجود که به صورت وی ای پی عمل می کنه