PDA

View Full Version : سوال: پنهان کردن صفحه ورود به مدیریت از دید عموم



mehdi-ghafari
جمعه 26 خرداد 1391, 12:09 عصر
سلام دوستان
من صفحه ورود به مدیریت رو در پوشه با نام manager قرار دادم.
ولی خوب هر کاربری که این آدرس رو بده صفحه لاگ این رو میتونه ببینه.
من نمیخوام اینجور باشه. چکار کنم که فقط خودم بتونم اون صفحه لاگ این رو ببینم و دیگه هرکس این آدرس رو زد پیغام 404 رو نشونش بده؟

ممنونم

fakhravari
جمعه 26 خرداد 1391, 12:57 عصر
شما میتوانید به راحتی با سشن کنترل کنید
برای ورود
Session.Add("u", txtUserName.Text);
Response.Redirect("admin/admin.aspx");
برای چک کردن

protected void Page_Load(object sender, EventArgs e)
{
if (Session["u"] != null)
{
if (!IsPostBack)
{
Editor();
}
}
else
{
Response.Redirect("../Default.aspx");
}


}

mehdi-ghafari
جمعه 26 خرداد 1391, 13:15 عصر
ولی اصلا ایده جالبی نیست.
تصور کنید سشن پاک بشه. اونوقت خودمم نمیتونم وارد شم.
من چندتا از سایتها رو بررسی کردم. و دو تای اونها رو کاملا مطمئنم که صفحه ورود به ادمینشون کجاست ولی با زدن اون آدرس با خطای 404 مرورگر مواجه میشم.

fakhravari
جمعه 26 خرداد 1391, 13:56 عصر
روش های زیادی هست هر جور که میتوانید پیادش کنید.
FormsAuthenticationTicket
ممبرشیپ

mehdi-ghafari
جمعه 26 خرداد 1391, 14:00 عصر
جناب فخرآوری این موضوعی که من عرض کردم فکر نمیکنم در راستای مسائل مربوط به احراز هویت یا شناسایی باشه.
من مطمئن نیستم ولی فکر میکنم یه جورایی با تغییر URL بستگی داشته باشه و نه از نوع فیزیکی یا یه همچین چیزایی
اصل کار رو نمیدونم. اگر اونو بفهمم ممکنه بتونم پیاده سازیش کنم

fakhravari
جمعه 26 خرداد 1391, 16:06 عصر
به نظر من اون 404 که میاد به دلیل پیدا نکردن پیج ایت که با کاستوم eroor میتوانیم تنظیم کنیم.
دوستان هم نطرشون اعلام کنند

iradata
جمعه 26 خرداد 1391, 16:23 عصر
میشه که اسم پوشه ای را که محتویات سیستم ادمین در آن قرار دارد را یک اسم کد شده گذاشت .

مثلا به جای این اسم ( admin ) از این اسم برای پوشه ادمین استفاده کرد ( a1d2m3i4n5 )

mehdi-ghafari
جمعه 26 خرداد 1391, 16:25 عصر
دقیقا 404 واسه اینه که میگه صفحه پیدا نشد.
ولی نکته همین جاست. اون صفحه موجوده و جون مدیر سایت نمیخواد که همه کس بجز پرسنل خودش صفحه ورود به مدیریت بفهمند کجاست ، اون رو از طریق کنترل پنل سایتش تغییر داده (البته حدس منه)
حالا نمیدونم با فایل webconfiguration یا global میشه این کار رو کرد یا خیر.
مثلا صفحه Admin/Login.aspx وجود داره ولی وقتی کسی اون رو صدا بزنه سیستم بگه این صفحه موجود نیست. و اگر آدرس other/login.aspx رو بزنیم همون Admin/Login.aspx رو برامون باز کنه
نمیدونم منظورم رو درست رسوندم یا خیر.:گیج:

mehdi-ghafari
جمعه 26 خرداد 1391, 16:27 عصر
میشه که اسم پوشه ای را که محتویات سیستم ادمین در آن قرار دارد را یک اسم کد شده گذاشت .

مثلا به جای این اسم ( admin ) از این اسم برای پوشه ادمین استفاده کرد ( a1d2m3i4n5 )

ممنونم از توجهتون
خوب با این کار فقط امکان گم کردن آدرس لاگ این رو افزایش دادیم.
و از طرفی، خوب این آدرس هم اگر کسی بفهمه دیگه میتونه لاگ این رو ببینه!!؟؟

ali helali
جمعه 26 خرداد 1391, 18:59 عصر
www.yoursite.com/login.aspx?roles=admin
roles رو چک کنیم اگه admin بود صفحه رو باز کنه در غیر این صورت اگه یه نفر roles=admin رو وارد نکنه یا اشتباه وارد کنه بفرستیم به یه جای دیگه.
نظر دوستان در این مورد چیه؟

aspmaker
جمعه 26 خرداد 1391, 19:17 عصر
به قول دوستمون ali helali (http://barnamenevis.org/member.php?45309-ali-helali) بهتره رول فرد لاگین شده چک بشه و اگه Admin بود اجازه ورود به LoginPage داده بشه. البته نه به حالت لینکی که گذاشتن بلکه با استفاده از خصوصیات کلاس MemberShip.
نکته: شما اگر تنظیمات امنیتی رو رعایت کنید دیگه نگرانی نخواهید داشت که کسی صفحه لاگین مدیر رو ببینه یه نه. اگر قصدتون جلوگیری از نفوذ هکرهاست، باید عرض کنم تا نقطه ضعفی از لحاظ برنامه نویسی سایتتون نداشته باشه طرف نمیتونه هیچ کاری انجام بده. البته بحث پیچیده ایی داره که جاش اینجا نیست. خیلی سخت نگیرید!!

mehdi-ghafari
جمعه 26 خرداد 1391, 20:32 عصر
به قول دوستمون ali helali بهتره رول فرد لاگین شده چک بشه و اگه Admin بود اجازه ورود به LoginPage داده بشه. البته نه به حالت لینکی که گذاشتن بلکه با استفاده از خصوصیات کلاس MemberShip.
این برای احراز هویت هست که مد نظر من نیست

نکته: شما اگر تنظیمات امنیتی رو رعایت کنید دیگه نگرانی نخواهید داشت که کسی صفحه لاگین مدیر رو ببینه یه نه. اگر قصدتون جلوگیری از نفوذ هکرهاست، باید عرض کنم تا نقطه ضعفی از لحاظ برنامه نویسی سایتتون نداشته باشه طرف نمیتونه هیچ کاری انجام بده
کاملا با حرف شما موافقم

خیلی سخت نگیرید!!
ببینید الان اکثر CMSهای سطح بالا و حرفه ای که توسط مهندسای داخلی تولید شده از این روش استفاده میکنن. منم کنجکاو شدم ببینم این از چه طریقی انجام میشه
بالاخره آدم باید همیشه دنبال چیزای جدید باشه

aspmaker
جمعه 26 خرداد 1391, 20:58 عصر
این برای احراز هویت هست که مد نظر من نیست
پس چجوری می خواید کاربراتون رو احراز هویت کنید؟ اینجوری دیگه خود مدیر هم قابل احراز شدن نیست!

بالاخره آدم باید همیشه دنبال چیزای جدید باشه
دقیقاً!! یادگیری پایانی نداره!!

میشه یکی از اون CMS ها رو معرفی کنید؟ آخه تا جایی که دیدم دسترسی به لاگین وجود داشته واسه همه.

mehdi-ghafari
جمعه 26 خرداد 1391, 21:36 عصر
پس چجوری می خواید کاربراتون رو احراز هویت کنید؟ اینجوری دیگه خود مدیر هم قابل احراز شدن نیست!
همون طور که عرض کردم احراز هویت مد نظر من نیست. چون توابع شناسایی بعد از رسیدن به فرم لاگ این کار خودشون رو انجام میدن.

میشه یکی از اون CMS ها رو معرفی کنید؟ آخه تا جایی که دیدم دسترسی به لاگین وجود داشته واسه همه.
اینجا (http://khabaronline.ir/NewsRoom)
ببینید دوستان منم که نمیگم احراز هویت نشه کاربر. ببینید من میگم مثلا آدرس فعلی لاگ این ادمین یک سایت اینه : http://site.com/admin/login.aspx حالا من نمیخوام مدیر این آدرس رو بزنه و صفحه لاگ این رو بزنه. میخوام مثلا آدرس http://site.com/manager/form.aspx رو بزنه و وارد سایت شه. این صورتی است که اگر ما آدرس اول رو وارد کنیم با اینکه وجود داره ولی بگه موجود نیست.

ali helali
شنبه 27 خرداد 1391, 19:49 عصر
دوستان منظور من از www.yoursite.com/login.aspx?roles=admin یه querystring کلیدی است که اگه کسی ندونه که باید یه querystringi به اسم roles یا هر چیزی که خودتون تعیین می کنید که حتما هم مساوی با admin یا باز هم هر چیزی خودتون تعیین کنید. اگه کسی www.yoursite.com/login.aspx بزنه بره به صفحه ی نخود سیاه ولی کسی www.yoursite.com/login.aspx?roles=admin بزنه چک کنید querystring تون رو اگه اونی که فرض کردین باشه صفحه ی login.aspx رو نشون بده در غیر این صورت باز به صفحه ی نخود سیاه فرستاده بشه.

mehdi-ghafari
سه شنبه 30 خرداد 1391, 15:58 عصر
جناب ali helali از این روش میشه یه کارایی را کرد ولی اصلا اصولی نیست.
چون ممکنه یکی ندونه کوئری استرینگ رو چطور باید در یو آر ال قرار دهند. بالاخره باید تمام جوانب رو در نظر گرفت. ممکنه یکی بتونه از طریق کنترل پنل سایت یک سایت رو مدیریت کنه ولی اصلا از یو آل ال یا کوئری استرینگ و ... اصلا اطلاعاتی نداشته باشه.
و اینکه با این کار از هوشمندی برنامه کاسته میشه

sarapepors
سه شنبه 30 خرداد 1391, 17:13 عصر
ببینید من فکر میکنم تنها راهش همون احراز هویته زمانی که شما صفحات ادمین رو در یک پوشه قرار میدید و براش webconfig تعریف میکنید و در ادامه در او webconfig لحاظ میکنید که کاربرانی که نقش ادمین دارن وارد بشن هیچ مشکلی به وجود نمیاد و کسی هم صفحه مدیریت شما رو نمیبینه مدیر هم همون ادرسیو که مربوط به صفحه مورد نظر هست رو تایپ میکنه نه صفحه لاگین رو . چیزی که شما میگید چطور امکان داره آخه مدیر همون آدرس رو تایپ میکنه و کاربری که قصد کنجکاوی داره هم همون رو حالا سیستم چطور باید تشخیص بده که این دستهای مدیر بوده داشته تایپ میکرده یا یه کاربر کنجکاو مگه این که از کاربر یوزر و پس بخواین .مرسی

sasanrstm
پنج شنبه 01 تیر 1391, 00:44 صبح
ببين اون آدرسي كه شما گذاشتين مال وقتي كه شايد مدير سايت مي خواسته سايتشو بروز كنه شما اون موقع رفتي تو سايت و براي شما خطاي نبودن صفحه رو داده و ديگري اينكه اگه مي خوائين موقع ورود صفحه مدييرت سايت شما ديده نشه واسه كاربران بايد يه صفحه ارور درست كنيد و كئوري استرين بدين كه حتي وقتي تو آدرس بارهم آدرس صفحه مدير رو وارد كرد بره به صفحه خطا حالا تواون صفحه هر جملهاي دوست داشتين بنويسيد و سومي تو وب كانفي بنويسيد


<customErrors mode="On"/>
<compilation debug="false">

همين چيزائي كه دوستان گفتن تقريبا همش درسته كاربر لاگين ميكنه تو صفحه ادمينش چك ميكنه اگه ادمين بود حالا با هر اسمي اجازه ورد بده اگه نبود بره صفحه خطائي كه طراحي كردي اونيكه شما گذاشتين دوحال داره ممكن صفحه در كدنويسيش خطائي داره و صفحه اجرا نميشه براي اينكه خطا براي كاربران ديده نشه همون كدي گه گفتم وتو وب كانفيك قرار ميدن كه اون صفحه مياد بالا تا شما خطاي سايت رو نتونيد ببينيدوگرنه مربوط به لاگين شدن ادمين نيست

mg_mahyar
پنج شنبه 01 تیر 1391, 01:07 صبح
اولا دلیلی نداره همون صفحه ای که شما حدس زدید واقعا صفحه مورد نظر برای لاگین باشه

ثانیا IP رو چک میکنه اگر از داخل سازمان یا حالا لیست مورد نظرش بود نشون مشده اگر نبود نشون نمیده
در حالت بهتر شما مود رو جای Form روی Windows میزارید که با اکتیور دایرکتوری کار کنه.

mehdi-ghafari
پنج شنبه 01 تیر 1391, 23:28 عصر
از پاسخهای تمام دوستان گلم ممنونم

اولا دلیلی نداره همون صفحه ای که شما حدس زدید واقعا صفحه مورد نظر برای لاگین باشه

آره همونه. صحیحه

ثانیا IP رو چک میکنه اگر از داخل سازمان یا حالا لیست مورد نظرش بود نشون مشده اگر نبود نشون نمیده
در حالت بهتر شما مود رو جای Form روی Windows میزارید که با اکتیور دایرکتوری کار کنه.
آره فکر کنم این یکی از روش ها باشه:متفکر:
باید برم دنبالش ببینم چی گیرم میاد. ممنون