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

نام تاپیک: امنیت صفحات از طریق sessionها

  1. #1
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728

    امنیت صفحات از طریق sessionها

    دیگه واقعا شرمنده.این دیگه سوال آخر امروزه!
    من میخوام مثل روش aspدر صفحه loginیک sessionتعریف کنم که اگر کاربر لاگین کرد این session مثلا trueبشه.بعد در page_loadتمام صفحاتم ابتدا چک کنم که این sessionمقدارش چیه و در صورت درست نبودن به صفحه لاگین برم.حالا دوتا سوال دارم:
    1-این روش تا چه حد مطمپنه؟اگر خوب نیست شما چه راه حلی را پیشنهاد میکنید؟
    2-در asp.netچطور این sessionتعریف میشه؟(syntax)آیا نیاز به اقداماتی در فایل global.asaxداره یا نه؟اگر ممکنه هرکسی چیزی میدونه بگه.حتما به درد میخوره.
    بازم از اینکه اینهمه حوصله کردید ممنونم :wink:

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    1.بستگی به طریقه استفاده شما داره !
    در هر صورت ASP.Net دارای مدلی برای تایین هویت به نام Forms Authentication هستش ، بهتره مطالعاتی در مورد اون هم داشته باشید. مطمئنا امکانات بیتشری داره ...
    قمست اول دو مقاله در این باب :
    http://www.ondotnet.com/pub/a/dotnet...rmsauthp1.html
    http://www.15seconds.com/issue/020220.htm

    2.مقدار دادن به یک سشن :
    object obj = 123;
    Session["YourSessionName"] = obj;

    از اونجایی که سشن ها از نوع Object هستند (پدر اکثر کلاس های دیگه) بنابراین میتونید تقریبا تمام انواع داده ای رو در اونها نگهداری کنید.

  3. #3
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    عالم ماده
    پست
    977
    آیا پیشنهاد می شود که یک ابجکت را در سشن ذخیره نمود؟ :!:

  4. #4
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    آیا پیشنهاد می شود که یک ابجکت را در سشن ذخیره نمود؟
    هر چیزی که بخواهید در سشن ذخیره کنید ابتدا به object بر میگرده و سپس در سشن ذخیره میشه.یعنی زمانی که شما یک استرینگ رو داخل یک سشن قرار میدید ، ابتدا یک implicit casting انجام میشه و سپس ذخیره سازی صورت میگیره.

    در واقع جنس آیتم های کلاس HttpSessionState از نوع object هستش. فکر میکنم چند وقت دیگه مشکلات explicit casting در اینگونه موارد با روی کار آمدن generic ها حل بشه. :wink:

  5. #5
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    خیلی ممنون از پاسختون
    در جزوه آقای نصیری هم یک فصل کامل به این موضوع اختصاص داده شده.اما من اطلاعات کاربران را که لاگین میکنند از داخل databaseمیخونم.اما در توضیحاتی که در این مورد دیدم usernameوpasswordمستقیما در web.configنوشته میشه.آیا میتونم با روش form authenticationاز دیتابیس بخونم؟اگه میشه چطوری؟

  6. #6
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    من session رو همونطوری که شما گفتید در page_loadیکی از صفحاتم تعریف کردم.اما باخطای زیر مواجه شدم:

    the session dosnot exist in the class ro namespace

    :?

  7. #7
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    خیر ، شما میتونید خودتون معتبر بودن یا نبودن یوزر رو (به طریقه خودتون) چک کنید و سپس از SetAuthCookie استفاده کنید :

    			if (ValidUser) 
    {
    System.Web.Security.FormsAuthentication.SetAuthCoo kie(txtUsername.Text,false); //or true
    }

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

    the session dosnot exist in the class ro namespace

    :?
    #C به حروف بزرگ و کوچک حساسه ، سشن را به صورت Session بنویسید.

  9. #9
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    خیر ، شما میتونید خودتون معتبر بودن یا نبودن یوزر رو (به طریقه خودتون) چک کنید و سپس از SetAuthCookie استفاده کنید :
    همین کافیه؟


    while (mm.Read ())
    {
    if (mm["sath"].ToString ()=="a")
    {
    FormsAuthentication.SetAuthCookie(txtLogin.Tex t, true);
    FormsAuthentication.RedirectFromLoginPage(txtL ogin.Text, true);
    Server.Transfer ("asli.aspx",true);

    }

    من با همچین کدی بعد از اینکه سطح دسترسی کاربر درست بود(یعنی a بود)این چک را انجام میدم.همین کافیه؟
    یعنی اگه آدرس صفحات دیگر را در addressبار IEکپی کنیم صفحه لاگین رو میاره؟(با همین کد؟)

  10. #10
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    معذرت میخوام .میشه یکی راهنمایی کنه؟برای اینکه صفحات دیگه قابل دسترسی نباشه چه کارهای دیگری باید انجام بدم؟ :?

  11. #11
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    Iran - Tehran
    پست
    799
    شما دو مقاله ذکر شده رو خوندید ؟ در همون جا به طور کامل شرح داده شده ...
    به هر حال ، شما در web.config مشخص میکنید که کدامیک از صفحات نیاز به شناسایی کاربر دارند و کدامیک ندارند . سپس در صورتی که کاربر توسط SetAuthCookie مورد تایید قرار گرفته شده باشد به صفحات حفاظت شده دسترسی دارد و در غیر این صورت به LoginUrl که در وب کانفیگ مشخص کردید هدایت میشود.

  12. #12
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    بله دوست عزیز .من مقالات مربوط به MSDNراهم با آدرس زیر به طور کامل مطالعه کردم:
    http://<br /> <a href="http://msdn.....asp</a><br />
    ولی هنوز مشکلات زیر را دارم:
    1-چطوری صفحاتی را که میخوام محافظت بشن در web.configتعریف کنم؟
    2-وقتی که کلمه کاربری و عبور با آنچه که در tableدارم مطابقت داشت کدهای بالا را اجرا میکنم.بعد به صفحه بعدی میره.اما وقتی آدرس نمایش همین صفحه بعدی را در یک IEبه صورت جدا از برنامه اجرا میکنم این صفحه اجرا میشه و به صفحه loginنمیره.
    :? :oops: :roll:

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

    &lt;location path="protected_directory">
    &lt;system.web>
    &lt;authorization>
    &lt;deny users="?"/>
    &lt;/authorization>
    &lt;/system.web>
    &lt;/location>


    برای محدود کردن یک صفحه هم path رو به آدرس صفحه مورد نظر ست میکنید.

    این قسمت از تنظیمات در قسمت &lt;configuration> فایل وب کانفیگ ذخیره میشه.

  14. #14
    کاربر دائمی آواتار jannati
    تاریخ عضویت
    فروردین 1382
    محل زندگی
    تهران
    پست
    728
    ممنون از توضیحاتتون
    فقط یک توضیح هم مال تازه کارهایی مثل خودم بدم که این تکه کد مربوط به محدودکردن دایرکتوری را بعد از تگ
    &lt;/system.web>
    (مربوط به webconfigخودتون)وارد کنید.(یه روز طول کشید تا اینو متوجه شدم (:D) )
    بازم از راهنمایی های آقای Frhad.B.Sممنونم :flower:

  15. #15
    کاربر دائمی آواتار Peyman_Ranjbar
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    شیراز
    پست
    608
    ولی من از این کد که استفاده میکنم فقط صفحات asp.net رو محدود میکنه
    حتی دیتابیس اکسس هم که رو سایت هست راحت داونلود میشه
    چکار کنم؟؟

  16. #16
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    دیتابیس اکسس رو همیشه می شود دانلود کرد! (خصوصا اگر از جستجوی حرفه ای گوگل استفاده کنید... )
    ولی خوشبختانه موتور اکسس به پسوند فایلش حساس نیست. بنابراین پسوند فایل را یکی از پسوندهای حفاظت شده توسط سرور قرار دهید. :wink:

  17. #17
    کاربر دائمی
    تاریخ عضویت
    خرداد 1382
    محل زندگی
    Tehran-TMU
    پست
    790
    دیتابیس اکسس رو همیشه می شود دانلود کرد! (خصوصا اگر از جستجوی حرفه ای گوگل استفاده کنید... )
    میشه بیشتر توضیح بدین!

  18. #18
    کاربر دائمی آواتار Peyman_Ranjbar
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    شیراز
    پست
    608
    دیتابیس اکسس رو همیشه می شود دانلود کرد!
    بنازم به این امنیت!!!
    مگه از بانک اطلاعاتی چه توقع دیگه ای باید داشت!!
    منو بگو که داشتم خودم رو میکشتم تا یجوری راهش بندازم

    پسوند فایل را یکی از پسوندهای حفاظت شده توسط سرور قرار دهید.
    _________________
    میشه چند تا از این پسوندهای محافظت شده رو مثال بزنید

    ممنون از شما استاد نصیری

  19. #19
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    میشه بیشتر توضیح بدین!
    نه! برخلاف قوانین سایت است. (به مقالاتی مانند گوگل دوست XXXها! در سایتهای دیگر مراجعه کنید.)

    میشه چند تا از این پسوندهای محافظت شده رو مثال بزنید
    برای مثال داخل دایرکتوری bin فایل mdb را با پسوند dll قرار دهید. فایل dll محافظت شده است.
    (بدیهی است که در برنامه باید این مسیر و این فایل با این پسوند را بعنوان دیتاسورس معرفی کرد)

  20. #20
    کاربر دائمی
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    ایران - تهران
    پست
    2,342
    لیست کامل پسوند فایلهای حفاظت شده :

    .aspx is used for ASP.NET pages. 
    .rem and .soap are used for Remoting.
    .asmx is used for Web Services.
    .asax, .ascx, .config, .cs, .csproj, .vb, .vbproj, .webinfo, .asp, .licx, .resx, and .resources are protected resources


    http://msdn.microsoft.com/library/de...l/THCMCh19.asp

  21. #21
    کاربر دائمی آواتار Peyman_Ranjbar
    تاریخ عضویت
    مرداد 1383
    محل زندگی
    شیراز
    پست
    608
    دیتابیس اکسس رو همیشه می شود دانلود کرد!
    خوب به هر حال باید یه راهی برای محدود کردن دسترسی به دایرکتوری ها باشه
    مثلا اگه بخواخم عکس کاربر ها رو تو فولدر با یه پسوند دیگه ذخیره کنم که خیلی ضایع هست :mrgreen:

  22. #22
    کاربر تازه وارد
    تاریخ عضویت
    تیر 1383
    محل زندگی
    ایران - تبریز
    پست
    85
    سلام.
    چرا از اراکل یا Sql Server استفاده نمیکنین که امنیتشون خیلی بیشتره و در ذخیره کردن تصویر هم مشکلی ندارن ؟ اکسس برای استفاده حرفه ای ایجاد نشده ! همچنین قابلیت سرعت و جواب دهی به درخواست ها از سوی اکسس خیلی پایین تر از دو بانک اطلاعاتی ذکر شده هست.

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

  1. وقتی صفحه refreshمیشودsessionپاک میشود
    نوشته شده توسط amordad در بخش ASP.NET Web Forms
    پاسخ: 3
    آخرین پست: یک شنبه 09 دی 1386, 14:21 عصر
  2. کسی هست به من در مورد sessionها کمک کنه
    نوشته شده توسط mortezabj در بخش PHP
    پاسخ: 4
    آخرین پست: پنج شنبه 12 آبان 1384, 11:43 صبح
  3. از بین رفتن sessionها
    نوشته شده توسط Mahdavi در بخش ASP.NET Web Forms
    پاسخ: 5
    آخرین پست: یک شنبه 08 آذر 1383, 20:55 عصر
  4. سوال در مورد کار با sessionوcookies
    نوشته شده توسط moeen amirlatifi در بخش PHP
    پاسخ: 5
    آخرین پست: چهارشنبه 19 فروردین 1383, 12:26 عصر

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

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