PDA

View Full Version : سوال: جلوگیری از دالنود فایل برای کاربران مهمان



moferferi
پنج شنبه 21 مهر 1390, 21:16 عصر
سلام.
چطور میتونیم در سایت از دانلود فایل برای کاربران مهمان و یا لاگین نکرده جلوگیری کرد.
البته میدونم که میشه موقع ورود کاربر یک session برای اون ایجاد کرد و موقع دانلود session مربوط به کاربر را چک کرد .
اما خوب وقتی که تعداد صفحات و لینک ها زیاد بشه فکر نکنم کار درستی باشه که واسه تک تکلینک ها این کار را کرد.
ایا میشه در فایل global این کار را کرد.؟

karim orooji
جمعه 22 مهر 1390, 15:57 عصر
سلام



واقعا حرفت خنده دار بود. برو یکم ASP یاد بگیر!!!!!
با حرف شما موافق نيستم
دوستاني كه كه توي اين سايت فعاليت ميكنم از اول كه asp ياد نداشتند كم كم ياد گرفتند
نظر من اينه از روش احراز هويت استفاده كني



يا علي

smm2006sh
جمعه 22 مهر 1390, 17:54 عصر
واقعا حرفت خنده دار بود. برو یکم ASP یاد بگیر!!!!!

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

دوست من moferferi همون طور که دوستان هم اشاره کردند شما اگه برای احراز هویت سایت خودت از کنترل لاگین استفاده کنید و به انها سطح دسترسی بدید این مشکل شما حل میشه . البته سرچ کنید چیزای بیشتری دستگیرتون میشه.
شما اگه فرمی که مثلا دانلودتون در اون هست را در فولدری به عنوان user نگهداری کنی و توی سطح دسترسی ها بگی فقط کاربران لاگین شده میتونند استفاده کنند ، دیگه کاربرانی که همین طوری وارد میشند نمیتونند از دانلود شما استفاده کنند.
موفق باشید:لبخند:

fakhravari
جمعه 22 مهر 1390, 18:11 عصر
بله ببنید شما فایل دانلود را به وسیله لینک تعریف کنید و همان احراز هویت سایت خودت از کنترل لاگین استفاده کنید
User.Identity.IsAuthenticated

moferferi
جمعه 22 مهر 1390, 19:36 عصر
من دنبال روشی برای چک کردن دسترسی فرد توی رویداد application_beginRequest هستم.
در ضمن پیشنهاد میکنم واسه اینکه یکم حرفه ای بشین دوره پیشرفته دات نت مهندس کیانیان را بخرید.
توی اون یه روش لاگین و تشخیص هویت پیشرفته و بدون استفاده از session و سیستم لاگین خود دات نت اموزش داده.روشی که به گفته خود مهندس کیانیان توی تموم پروژه هاش ازش استفاده میکنه.

moferferi
جمعه 22 مهر 1390, 19:55 عصر
توی سایتی دیدم که از این روش را پیشنهاد داه بود
void Application_BeginRequest(object sender, EventArgs e)
{

string url = Request.Url.AbsolutePath.ToLower();

string[] parts = url.Split('/');
string pageName = parts[parts.Length - 1];
if (pageName.ToLower().EndsWith(".zip"))
{
if (Session["mys"] == null)
{
Response.Clear();
Response.Redirect("Default.aspx");

}
}
}
ولی مشکل اینه که با چک کردن session توی این بخش مشکل داره.احتمالا باید تنظیماتی را توی فایل وب کانفیگ انجام داد.

mehran_sh_t
جمعه 22 مهر 1390, 20:23 عصر
با روش چک کردن عضویت کاربر، وقتی کاربر آدرس فایل رو داشته باشه، دیگه نمی تونی جلوی دانلود کردنش رو بگیری!


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


ولی مشکل اینه که با چک کردن session توی این بخش مشکل داره راستی مشکل این قسمت چیه؟

روشی که میشه گفت مطمئن ترین راه هستش (تا جایی که من بلدم!) اینه که فرض کن یک پوشه داری به نام "Download"، گزینه read رو برای این پوشه بر می داری، اینطوری وقتی کاربر آدرس رو هم داشته باشه، نمی تونه دانلود کنه. در مرحله بعد، وقتی که هویت کاربر مشخص شد (لاگین) با استفاده از کد، فایل رو در اختیارش می ذاری.

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

moferferi
جمعه 22 مهر 1390, 21:57 عصر
اقای fakhravari از شما ممنونم (http://barnamenevis.org/member.php?128926-fakhravari)
در جواب اینکه گفتید مشکل این بخش چیه
باید بگم که همونطور که میدونید من مقدار session را چک میکنم.ولی انگار نه انگار.مثلا شما تو این بخش به session مقدار بدین یا پاک کنین یا اضافه کنید.اصلا هیچ کاری انجام نمیشه.تعجب منم همینه که لااقل باید یه error بده.
به هر حال اگه تونستید مقدار session در این بخش کنترل کنید ممونم میشم.

fakhravari
شنبه 23 مهر 1390, 00:14 صبح
http://www.centralclubs.com/cookies-sessions-asp-net-t12336.html

raziee
شنبه 23 مهر 1390, 15:25 عصر
بعد از خوندم پست ها لازم دیدم که چند نکته رو بگم.
اول اینکه همه ی ما از روز اول اطلاعات فعلیمون رو نداشتیم. و این اطلاعات رو کسب کردیم. پس از این بابت کسی حق نداره کاربری رو مورد تمسخر قرار بده.
اما:
در مرود عدم دسترسی فایل ها به کاربران غیر مجاز:
شما نباید!! لینک مستقیم فایل رو به کاربر بدید.
مثلا:
وقتی کاربری نباید تصویر Sample.jpg رو ببینه نباید آدرس مطلق فایل رو بهش بدید!! چون بعضی از پسوند ها قبل از ارسال به دات نت پاسخ داده میشند.(این موضوع رو در مورد rewrite کردن پسوند فایل ها میتونید پیگیری کنید قبلا بحث شده)
------
شما باید فایل رو در مسیری که کاربر بهش دسترسی نداره مثلا پوشه ی App-Data بریزید. و بعد به هر وسیله ای که میدونید این فایل رو در اختیار کاربر قرار بدید.
مثلا یک Handler بنویسید که وظیفه ی بررسی سطح دسترسی کاربر و ارسال پاسخ مناسب به کاربر رو داره.
شاد باشید.