PDA

View Full Version : حرفه ای: ایجاد لینک دانلود یک بار مصرف



CYCLOPS
پنج شنبه 09 شهریور 1391, 17:43 عصر
سلام به همه دوستان
من تو سایتم یه سری فایل دارم که میخوام هر کاربر با لینک مستقیم دانلود کنه ولی فقط لینکی که از خود سایت ایجاد بشه
به عنوان مثا به جای دانلود فایل زیر:
http://www.mydomain.com/files/test.zip
فایل از آدرسی مانند این آدرس دانلود بشه:
http://www.mydomain.com/files/download?key=randomNumber
ولی کاربر نتونه این لینک رو به صورت hotlink جای دیگه تو وب قرار بده.
یه جور مثل سایت های اشتراک گذاری فایل
چطور باید این کار رو انجام داد؟؟
من چند جا خوندم از GUID باید استفاده کرد.
چند جا هم پیشنهاد کرده بودن که یه جور مثل Time Stamp تولید بشه و مثلا تا یه بازه زمانی بعدش فایل در دسترس باشه.
کلا جدای از بحث روش برای پیاده سازی باید چیکار کرد که کاربر از لینک اصلی فایل مطلع نشه.

ممنون از توجهتون

CYCLOPS
پنج شنبه 09 شهریور 1391, 19:31 عصر
دوستان تو تالار ASP.NET این دو تا تاپیک خوب بود و جوابگو هستش:

سوال: راهنمایی محدود کردن دسترسی به فایل با لینک مستقیم؟ (http://barnamenevis.org/showthread.php?332356-%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C%DB%8C-%D9%85%D8%AD%D8%AF%D9%88%D8%AF-%DA%A9%D8%B1%D8%AF%D9%86-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84-%D8%A8%D8%A7-%D9%84%DB%8C%D9%86%DA%A9-%D9%85%D8%B3%D8%AA%D9%82%DB%8C%D9%85%D8%9F&highlight=%D9%84%DB%8C%D9%86%DA%A9+%D8%AF%D8%A7%D9 %86%D9%84%D9%88%D8%AF)
سوال: جلوگیری از دسترسی به فایل ها از بیرون سایت (http://barnamenevis.org/showthread.php?315587-%D8%AC%D9%84%D9%88%DA%AF%DB%8C%D8%B1%DB%8C-%D8%A7%D8%B2-%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C-%D8%A8%D9%87-%D9%81%D8%A7%DB%8C%D9%84-%D9%87%D8%A7-%D8%A7%D8%B2-%D8%A8%DB%8C%D8%B1%D9%88%D9%86-%D8%B3%D8%A7%DB%8C%D8%AA)

سعی میکنم نمونه MVC رو براتون قرار بدم.

موفق باشید.

CYCLOPS
پنج شنبه 09 شهریور 1391, 19:46 عصر
دوستان برای محدودیت زمانی گذاشتن و اینکه لینک دانلود هر دفعه عوض بشه راه حلی به ذهنتون میرسه؟

NIK
شنبه 11 شهریور 1391, 15:46 عصر
دوستان برای محدودیت زمانی گذاشتن و اینکه لینک دانلود هر دفعه عوض بشه راه حلی به ذهنتون میرسه؟

سلام

به نظر من تولید لینکهای دانلود به وسیله Guid ایده خوبیه. و سپس لینک در دیتابیس ذخیره بشه و زمان اتقضا و آدرس فیزیکی فایل دانلود هم در همون رکورد قرار داده بشه.
میتونید در فایل Global.ascx مشخص کنید که کلیه آدرسهایی که مثلا با /download شروع میشه ابتدا از دیتابیس بررسی بشه و اگه اعتبار داشته باشه، از اونجا آدرس رو route کنید به آدرس واقعی.
این طور کاربر نمیتونه لینک واقعی رو ببینه و در صورتی که لینک اعتبار نداشته باشه، پیام انقضای لینک داده بشه.
این فقط یه نظریه است و به طور عملی تست نشده ولی فکر نمیکنم مشکلی داشته باشه.

موفق باشید