نمایش نتایج 1 تا 19 از 19

نام تاپیک: ساخت session دستی

  1. #1
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229

    ساخت session دستی

    با سلام
    من جدیدا با asp برنامه رو نوشتم که برای کنترل مجوز کاربران وقتی کاربر رمز رو صحیح وارد میکنه یک session میسازه و مقدار اونرو true میکنه و در تمام صفحات دیگه من چک کردم اگه اون session مقدارش true بود صفحه رو بازکن (برای امنیت بیشتر) حالا مشکل من اینه که جدیدا یک کاربری اومده و این برنامه رو هک میکنه خیلی هم ادعاش میشه نامرد

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

  2. #2
    با سلام
    من به طور کامل منظور هکر نامرد! رو متوجع! نشدم.
    ولی شاید بهتره روشت رو عوض کنی(چون استفاده از سشن! اصلا بدرد امنیت ممنیت نمیخوره!!!)
    بهترین روش استفاده از تعیین اعتبار خود دات نت هستش(ASP.NET Authentication) و تعیین سطح مجوز(ASP.NET Authorization) که در حالت پیشرفتش تبدیل میشه به (Role Based Authorization) یا همون امنیت بر پایه نقش کاربران هستش...
    نظرت چیه؟

    (تبصره: شاید به خاطر کلاس گذاشتنم بعضی از واژه ها رو اشتباه تایپیده باشم! که پیشاپیش معذرت میخوام.)
    با تشکر.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    1.سیستم اتنتیکیشین خود ای اس پی دات نت هم (در Forms Authentication ) از سشن ها استفاده میکنه.

    2.به طور کلی , هر سشن در یک سیستم برای هر درخواست (بازدید کننده) و هر وب اپلیکیشن یکتا هستش.
    بنابراین امکان تغییر یک سشن از طریق یک وب اپلیکیشن دیگه یا چیزی شبیه به این وجود نداره (بنابراین تنها راه تغییر محتویات یک سشن, انجام یک عملکرد در سطوح پایین و تغییر قسمت هایی از حافظه ماشین اجرا کننده وب اپلیکیشن است) نتیجه اینکه زمانی که این برنامه بر روی یک وب سرور اجرا میشه هیچ درخواست کننده ای قادر به تغییر محتویات یک سشن نخواهد بود.
    احتمالا ضعف در قسمت دیگه ای از سیستم تایین هویت شما وجود داره ...

  4. #4
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    فکر کنم sesseion در خود کلاینت نگهداری میشه
    ولی مطمئنم که اون هکر نامرد مقدار session رو عوض میکنه وگرنه راهی برای دور زدن اون صفحه نیست چون در ابتدای صفحه مقدار session رو چک کردم
    در ضمن من با asp نوشتم نه با asp.net

  5. #5
    با سلام

    سیستم اتنتیکیشین خود ای اس پی دات نت هم (در Forms Authentication ) از سشن ها استفاده میکنه

    البته بنده فکر میکنم(در واقع اطمینان دارم) که سیستم ASP.NET Authentication از کوکی استفاده میکنه!!! نه از سشن های درپیت :P
    و اگر اجازه استفاده از کوکی در Browser کاربر داده نشده باشه فکر کنم به مشکل برخورد بکنه(البته شاید هم این کار در این حالت سمت سرور انجام بشه!)

    خوب بگذریم...
    میشه توضیح بدین که خود شما چطوری و پس از چه کارهایی اون سشن رو پر میکنین؟
    (بنده فکر میکنم)احتمالا طرف از SQL Injection استفاده کرده!!!!

  6. #6
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    1.خیر ، سشن ها در سمت سرور (در حافظه ماشین سرور) ذخیره میشند و این کوکی ها هستند که در سمت کلاینت ذخیره میشند.
    2.چیزی به نام Asp.Net Authentication (به عنوان یک روش تایین هویت منفرد ) وجود نداره ، سیستم تعیین هویت ای اس پی دات نت به سه قسمت Windows Authentication ، Forms Authentication و Passport Authentication تقسیم میشه.
    چیزی که در اینجا مورد بحثه ، Forms Authentication هستش . این سیستم هم میتونه متکی بر سشن ها و هم متکی بر کوکی ها باشه که انتخاب اول اون سشن هاست .

  7. #7
    با سلام
    میشه بفرمایید که همین تعیین اعتبار کاربر با سشن ها چطوری انجام میشه؟؟؟
    چون ما تو تنظیمهای همین Forms Authentication در Web.config بایستی نام کوکی که در کلاینت ساخته میشه رو به همراه زمان موجود بودنش و اینکه امنیت تبادل اطلاعات با اون کوکی چطوری انجام بشه(منظورم قسمت protection هستش) و یه سری تنظیمهای دیگه که همه مربوط به کوکیها میشن رو قرار بدیم!
    اینطور نیست؟؟؟
    اگه میشه یه راهنمایی بفرمایید.
    در ضمن همونطور هم که خودتون گفتین منظور بنده قسمت Forms Authentication از ASP.NET Authentication بوده!البته از اینکه کمی تند رفتم می معذرتم :oops:
    با تشکر.

  8. #8
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    سادست ، سیستم پذیرش کوکی را غیر فعال کنید.
    حالا تکه کد زیر رو امتحان کنید :

    	private void btnSignIn_Click(object sender, System.EventArgs e)
    {
    System.Web.Security.FormsAuthentication.SetAuthCoo kie("username",false);
    }

    private void Page_Load(object sender, System.EventArgs e)
    {
    Response.Write(Request.IsAuthenticated);
    }

  9. #9
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    سلام اساتید
    من چجوری بگم که با asp نوشتم حالا شما هی در مورد asp.net بحث کنید
    تازه من با استفاده از stode procedure برای تعیین کاربر مجاز استفاده میکنم و sql_injection هم تست کردم
    برنامه از این طریق آسیب پذیر نیست
    راه حلی وجود نداره؟
    پس این بابا چکار میکنه ؟

  10. #10
    کاربر دائمی آواتار komeil64
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    تهران
    سن
    38
    پست
    618
    سلام
    جناب Farhad.B.Sمیشه آدرس یک مثال از Authentication را بدین
    چون من لاگین را با Authentication ننوشتم و از این چیزی که نوشتم زیاد خوشم نیومد
    ممنون

  11. #11
    دوست من برو سوالت رو تو بخش ASP مطرح کن.

  12. #12
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    این سوال رو اینجا مطرح کردم چون میدونم اساتید asp قدیم در این بخش هستند :oops: :lol:

  13. #13
    بحث های اسپوفینگ و غیره :evil2: ... بگذریم!
    شما کد قسمت تعیین اعتبار کاربران برای لاگین را اینجا بنویسید لطفا. مشکل مشخص می شود.
    (و یا کلا کدی که برای این صفحه ی ذکر شده استفاده می کنید)

  14. #14
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229

    if (Session("Uservaled") = "") then
    responce.redirect("err.asp")
    end if

  15. #15
    if (Session("Uservaled") = "") then
    responce.redirect("err.asp")
    end if
    خوب فکر کنم اشتباه کردی
    اینجوری اصلاحش کن

    If Session("Uservaled") = False or IsNull(Session("Uservaled")) = True then
    'Redirect to unathorised user page
    Response.Redirect"err.asp"
    End If

  16. #16
    چه کدی منتهی به مقدار دهی اولیه برای Session می شود؟ آن کد هم مهم است.

  17. #17
    کاربر دائمی آواتار hmm
    تاریخ عضویت
    مهر 1382
    محل زندگی
    ایران - یزد
    پست
    1,229
    ولی در شرایط عادی درست کار میکنه
    کد شما هم زیاد تغییری نداره فقط مقدار null رو چک میکنه که اونهم در برنامه اثری نداره
    یعنی اون هکره از این کد نمیتونه به نفع خودش استفاده کنه

  18. #18

    نقل قول: ساخت session دستی

    من از این روش استفاده کردم
    ولی یه مشکل اساسی دارم
    در FormsAuthentication بعد از ایجاد دسترسی برای کاربر و صدور بلیط مجوز های دسترسی را از دیتابیس خوانده و در Session قرار میدم. مشکل جایی ایجاد میشه که بعد از گذشت Timeout مجوز ها در سرور از بین خواهد رفت و در مراجعه بعدی وقتی کدی که شما در بالا استفاده کردید رو استفاده میکنیم مقدار Session خالی خواهد بود و به اشتباه به صفحه مورد نظر هدایت میشویم. این روش یه مشکل دیگه هم داره. با زیاد کردم Timeout بار اضافه که بر سرور وارد میشود باعث ایجاد ضعف امنیتی و مشکل در حملات Dos خواهد شد.
    به نظر من رو Role-Based Authorization کار کنید

  19. #19

    نقل قول: ساخت session دستی

    نقل قول نوشته شده توسط hmm مشاهده تاپیک
    با سلام
    من جدیدا با asp برنامه رو نوشتم که برای کنترل مجوز کاربران وقتی کاربر رمز رو صحیح وارد میکنه یک session میسازه و مقدار اونرو true میکنه و در تمام صفحات دیگه من چک کردم اگه اون session مقدارش true بود صفحه رو بازکن (برای امنیت بیشتر) حالا مشکل من اینه که جدیدا یک کاربری اومده و این برنامه رو هک میکنه خیلی هم ادعاش میشه نامرد

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

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

تاپیک های مشابه

  1. Session چیست ؟
    نوشته شده توسط merlin_vista در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: چهارشنبه 16 مرداد 1392, 09:13 صبح
  2. خالی شدن Session
    نوشته شده توسط Behsharp در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 03 شهریور 1386, 16:17 عصر
  3. TimeOut کردن یک Session خاص نه تمام Session های بکار رفته؟
    نوشته شده توسط Behsharp در بخش ASP.NET Web Forms
    پاسخ: 1
    آخرین پست: شنبه 08 مهر 1385, 11:16 صبح
  4. تفاوت session و cooki-less session
    نوشته شده توسط bluesky2005 در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: شنبه 08 اسفند 1383, 07:44 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •