PDA

View Full Version : سوال: راهنمایی محدود کردن دسترسی به فایل با لینک مستقیم؟



hamed2592
چهارشنبه 24 اسفند 1390, 03:07 صبح
با عرض سلام

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

در مورد File permistion هم سرچ کردم و مطلبی بدردم نخورد .

سوال من اینه که : اگه بخوایم لینک مستقیم دانلود رو به کسی که دانلود میکنه ندیم باید چیکار کرد !؟

در واقع فقط کاربرانی بتونن فایل ها رو دانلود کنن که لاگین کرده باشن ! در غیر اینصورت حتی با وارد کردن آدرس مستقیم فایل هم نتونن دانلود کنن .

در مورد UrlRewriter هم تست کردم ولی جواب نداد .

به این شکل که مثلا :


<rewrite url="~/(.+)/Files/" to="~/Files/$1.zip"/>

اما با وارد کردن آدرس مثلا :


http://Mysite.com/Filename/Files

باز فایل zip رو دانلود میکنه !

درواقع یه چیزی شبیه به دانلود خود سایت برنامه نویس ! :
لینک دانلودی که تولید میشه مثلا به این شکل هست نه آدرس مستقیم :


http://barnamenevis.org/attachment.php?attachmentid=40059&d=1258716830


ممنون میشم راهنماییم کنید .

---------------------------------------------------------------------
تاپیک به نتیجه رسید : سورس برنامه ضمیمه شد

ای کاش همه ی دوستان وقتی سوالشون به نتیجه میرسید یه Source میذاشتن .

یا علی

raziee
چهارشنبه 24 اسفند 1390, 10:27 صبح
با سلام.
بهتره فایل ها رو در پوشه ای قرار بدید که توسط IIS محافظت میشه (مثل APP_DATA) و یا پوشه ی مورد نظر خودتون رو به IIS معرفی کنید که کسی نتونه مستقیما با این پوشه کار کنه.
شما میتونید از یک Handler استفاده کنید تا مشخصات اون فایل رو گرفته و به کاربر تحویل بدید.
مثلا Id اون فایل رو به این هندلر بفرستید.
اطلاعات مربوطه به اون فایل رو از دیتابیس واکشی کنید و بررسی کنید که آیا کاربر درخواست دهنده مجاز به دریافت فایل هست یا خیر.

farhud
چهارشنبه 24 اسفند 1390, 10:40 صبح
میشه فایل‌ها را درون یک پوشه قرار داد و با استفاده از web.config دسترسی به اون پوشه را محدود به افراد لاگین کرده کرد.

hamed2592
چهارشنبه 24 اسفند 1390, 13:44 عصر
با تشکر


با سلام.
بهتره فایل ها رو در پوشه ای قرار بدید که توسط IIS محافظت میشه (مثل APP_DATA) و یا پوشه ی مورد نظر خودتون رو به IIS معرفی کنید که کسی نتونه مستقیما با این پوشه کار کنه.


چطوری به IIS معرفی کنم که کسی نتونه مستقیما با پوشمون کار کنه ؟



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

میشه در مورد Handler بیشتر توضیح بدین ؟

raziee
چهارشنبه 24 اسفند 1390, 15:39 عصر
با تشکر



چطوری به IIS معرفی کنم که کسی نتونه مستقیما با پوشمون کار کنه ؟



میشه در مورد Handler بیشتر توضیح بدین ؟
جستجو کنید.
مطالب بسیاری پیدا میکنید.
+ (http://www.antiyes.com/aspnet-file-download-handler) و + (http://www.mikesdotnetting.com/Article/122/Simple-File-Download-Protection-with-ASP.NET)

fakhravari
چهارشنبه 24 اسفند 1390, 16:16 عصر
با سلام یه امکانات دیگری هم هست
که میتوانید چک کنید ایا ادرس وارد شده از درون سایت خود زده شده یعنی از سایت خود بر روی لینک دانلود کلیک شده.
که میتوان جلوگیری از دزدیده شدن لینک دانلود و در نتیجه ترافیک کم سایت

hamed2592
پنج شنبه 25 اسفند 1390, 03:01 صبح
با سلام یه امکانات دیگری هم هست
که میتوانید چک کنید ایا ادرس وارد شده از درون سایت خود زده شده یعنی از سایت خود بر روی لینک دانلود کلیک شده.
که میتوان جلوگیری از دزدیده شدن لینک دانلود و در نتیجه ترافیک کم سایت

وقتی مثلا آدرس یه فایل zip زده میشه که نمیشه بررسی کرد ؟ اگه این امکان وجود داره میشه بیشتر توضیح بدین ؟

hamed2592
پنج شنبه 25 اسفند 1390, 03:54 صبح
جستجو کنید.
مطالب بسیاری پیدا میکنید.
+ (http://www.antiyes.com/aspnet-file-download-handler) و + (http://www.mikesdotnetting.com/Article/122/Simple-File-Download-Protection-with-ASP.NET)

برنامه WriteFileTest رو دانلود کردم و هر کاری کردم که تستش کنم خطا میداد .

طبق دستور العمل خودشم جلو رفتم اما باز جواب نداد .

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

hamed2592
شنبه 27 اسفند 1390, 11:44 صبح
اگه امکان داره اساتید محترم یه نگاهی هم به سوال من داشته باشن .

fakhravari
شنبه 27 اسفند 1390, 11:53 صبح
سمپلش میزارم.
اگر از درون سایت کلیک شده باشه فایل دانلود میشه اما اگر لینک از بیرون سایت باشه غیر فعال

Peyman.Gh
شنبه 27 اسفند 1390, 15:47 عصر
پسوند فایل ها رو تغییر دهید.

hamed2592
یک شنبه 28 اسفند 1390, 01:30 صبح
سمپلش میزارم.
اگر از درون سایت کلیک شده باشه فایل دانلود میشه اما اگر لینک از بیرون سایت باشه غیر فعال

با سلام و تشکر

تست کردم برنامه خیلی عالی بود و برای فایل های doc , jpg , txt جواب داد . اما برای فایل های zip و rar و pdf جواب نمیده و باز دانلود میشه !؟

fakhravari
یک شنبه 28 اسفند 1390, 03:04 صبح
با سلام
توی کلاس اضافه کنید.
string[] BlockedFiles = new string[] { ".jpg", ".css", ".js" };

hamed2592
یک شنبه 28 اسفند 1390, 15:41 عصر
با سلام
توی کلاس اضافه کنید.
string[] BlockedFiles = new string[] { ".jpg", ".css", ".js" };

!!!

توی کلاس اضافه کردم . دیدم جواب نمیده .

فایل Doc و txt و jpg و gif و... رو میگه دسترسی امکان پذیر نیست .

اما pdf و zip و rar و... ( تو این مایه ها ) که میذنم IDM میپره بالا و دانلودش میکنه !

fakhravari
یک شنبه 28 اسفند 1390, 16:10 عصر
تست کردم درست بود.
شما string[] BlockedFiles = new string[] { ".jpg", ".css", ".js", ".rar", ".zip" }; جایگزین کنید بعد برای مثال
<a href="img/pic001.jpg" target=_blank>1</a><br />
<a href="img/pic002.jpg" target=_blank>2</a><br />
<a href="img/pic003.jpg" target=_blank>3</a><br />
<a href="img/pic004.jpg" target=_blank>4</a><br />
<br />
<a href="img/bedast-avordane-ip.rar" target=_blank>img/bedast-avordane-ip.rar</a>
<br />
<a href="img/yahoo_List_vcf.zip" target=_blank>img/yahoo_List_vcf.zip</a>
اگر در خواست از درون سایت داده شد برای مثال
شما برای نمایش اطلاعات از
http://localhost:1807/WebSite3/Default.aspx
استفاده میکنید خوب الان اگر از روی http://localhost:1807/WebSite3/Default.aspx بر روی لینکی کلیک شد درست است و لینک دانلود میشه اما اگر لینک در مرورگری دیگر باز کنید پیغام خطا میدهید.
http://localhost:1807/WebSite3/img/pic003.jpg
http://localhost:1807/WebSite3/img/pic003.jpg

hamed2592
یک شنبه 28 اسفند 1390, 19:41 عصر
با عرض سلام مجدد

تغییراتی که گغته بودین رو قبلا هم گفتم انجام دادم اما این سری متن رو کپی کردم تا خیالم راحت شه که اشتباه تایپ نکردم .

این آدرس رو بزنید :

http://localhost:1807/WebSite3/img/yahoo_List_vcf.zip (http://localhost:1807/WebSite3/img/pic003.jpg)


دانلود میشه ! ( چه با IDM چه بدون اون ) پنجره دانلود میاد بالا .

آقا گفتم با عکس مشکلی نداره خیلی هم خوب جواب میده اما با فایل های zip و rar و pdf رو دانلود میکنه .

fakhravari
یک شنبه 28 اسفند 1390, 20:00 عصر
شما بر روی این ادرس http://localhost:1807/WebSite3/img/yahoo_List_vcf.zip (http://localhost:1807/WebSite3/img/pic003.jpg) در همان صفحه کلیک ؟
یا میبرید در صفحه دیگر ادرس را وارد میکنید:متفکر:.
تا یه سمپلی درست کنم تا شب میزارمش

hamed2592
یک شنبه 28 اسفند 1390, 20:21 عصر
شما بر روی این ادرس http://localhost:1807/WebSite3/img/yahoo_List_vcf.zip (http://localhost:1807/WebSite3/img/pic003.jpg) در همان صفحه کلیک ؟
یا میبرید در صفحه دیگر ادرس را وارد میکنید:متفکر:.
تا یه سمپلی درست کنم تا شب میزارمش

من آدرس رو میبرم تو یه صفحه ی جدید وارد میکنم و Enter میزنم !

چون مشکل من اینه که نمیخوایم کاربر های غیر عضو اطلاعات رو دانلود کنن ! پش اونها لینک ندارن ، و لینکی هم که مثلا از یه وبلاگ گرفتم رو یا روش کلیک کردن یا وارد مرورگر میکنن یا مستقیم وارد IDM میکنن .

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

مشکل برنامه ی شما اینه که zip و rar رو تشخیص نمیده .

fakhravari
یک شنبه 28 اسفند 1390, 21:22 عصر
مرجع
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

نمونه
http://fakhravary.somee.com/test/Default5.aspx

hamed2592
یک شنبه 28 اسفند 1390, 23:49 عصر
لطفا ویدئو 20 ثانیه ای زیر رو نگاهی بندازید ... ممنون میشم :

http://www.aparat.com/v/e505ae91314431d5f1ce9af9962f830c155668

hamed2592
دوشنبه 29 اسفند 1390, 02:31 صبح
مشکل رو اینطوری تونستم حل کنم که اصلا آدرس فایل نمایش داده نشه ! مثل همین برنامه نویس که آدرس دانلود یه ID داره نه چیز بیشتر .

تونستم راهی رو پیدا کنم که فایل های zip و rar رو دانلود کرد بدون اینکه آدرس مستقیم فایل نمایش داده شه . اینطوری نیازی نیست که یک فولدر یا درخواست رو محدود کنیم . چون آدرسی در اختیار کاربر نیست که بخواد اون رو به پخش کنه .

یه پروژه واسه تست گداشتم تو Page اول که تاپیک رو ایجاد کردم .

میتونین دانلود کنین .

ای کاش همه ی دوستان وقتی سوالشون به نتیجه میرسید یه Source میذاشتن .

یا علی

fakhravari
دوشنبه 29 اسفند 1390, 12:31 عصر
با سلام
سمپل شما در پست 1 اگر جلوی کاربران بگیره اما
ولی بازم با داشتن لینک مستقیم قابل دانلود است.
شما یک باره دیگر این لینک چک کنید.
http://fakhravary.somee.com/test/Default5.aspx

hamed2592
دوشنبه 29 اسفند 1390, 14:08 عصر
با این روش آدرس مستقیم فایل به کاربر داده نمیشه .

تست کردم ، متاسفانه مثل همون فیلمی شد که گذاشتم . باز IDM میاد بالا !

fakhravari
دوشنبه 29 اسفند 1390, 16:00 عصر
دوستان تست کنند .
این آدرس ها را کی کنید و در ادرس بار بزنید ببنید چه Error میاد
http://fakhravary.somee.com/Img/File_Topik/installshield_2.rar
http://fakhravary.somee.com/Img/File_Topik/mobtani-web.doc
http://fakhravary.somee.com/test/v.exe
http://fakhravary.somee.com/AfDanload_files/icon0000.ico

---------
http://fakhravary.somee.com/AfDanload_files/loading-.gif
http://fakhravary.somee.com/Img/Profile_User/fakhravary.jpg
http://fakhravary.somee.com/AfDanload_files/1157.png

mahdi.violin
جمعه 02 تیر 1391, 16:19 عصر
fakhravari ببخشیدا ، خودتون یه بار کپی کردید ببینید خطا میده یا نه ، لطفا یه بار خودتون تست کنید

fakhravari
جمعه 02 تیر 1391, 23:29 عصر
fakhravari ببخشیدا ، خودتون یه بار کپی کردید ببینید خطا میده یا نه ، لطفا یه بار خودتون تست کنید
یعنی چی این حرف شما؟

http://fakhravary.somee.com/Img/File_Topik/installshield_2.rar
http://fakhravary.somee.com/Img/File_Topik/mobtani-web.doc
http://fakhravary.somee.com/test/v.exe
http://fakhravary.somee.com/AfDanload_files/icon0000.ico
باید
Access Denaid

بده

walker
دوشنبه 09 اردیبهشت 1392, 10:13 صبح
یه راه خیلی ساده داره . شما خیلی راحت میتونید از طریق Cpanel وب سایت یه سری محدودیت ها ایجاد کنید . کافیه واردش بشید و در قسمت security گزینه Hotlink protection کلیک کنید . تو این قسمت میتونید فرمت فایل هایی که می خواید به صورت مستقیم قابل دستیابی نباشنو مشخص کنید . و حتی میتونید چند domain تعریف بکنید که این domain ها اجازه دستیابی مستقیمو دارن اما بقیه آدرس ها و از جمله همه کاربرای لاگین نکرده نمیتونن دستیابی داشته باشن . و حتی میتونید تعیین کنید در صورتی که تلاش کنن به صورت مستقیم دستیابی داشته باشن ، به چه صفحه یی redirect بشن . hotlink protection به صورت پیشفرض خاموشه و اول باید فعالش کنید از همون صفحه .:لبخندساده: