واضح آرشیو وب فارسی:سایت ریسک: دکمه back در IE و کاهش امنیت leila_karimi 10 مرداد 1386, 09:20من توی سایت برایlogin سشن(session) تعریف کردم و خوب کار می کنه فقط یه مشکل داره اگر کسی با زدن دکمه خروج از سایت خارج شود و از پشت pc بلند بشه یه نفر دیگه می تونه با زدن دکمهback در IE به صفحات وی دسترسی پیدا کنه لطفا راهنمایی کنین پیشاپیش ممنونم amirlol 10 مرداد 1386, 13:29خوب زمانی که خروج میشه شما باید همه session ها رو پاک کنید ! ** با چه زبانی ؟ leila_karimi 11 مرداد 1386, 11:19asp.net یعنی شما می گین با زدن back صفحه refresh میشه و دنبال اطلاعات session می گرده و پیدا نمی کنه و بهlogin بر میگرده؟ در صورتی که من فکر نمی کنم refresh بشه. mosyhey 11 مرداد 1386, 12:55به نظر من شما باید اول از همه جلوی کش شدن سایتتان در کامپیوتر بازدید کننده را بگیرید که من با asp classic بلدم و net. را نه. یوزر و پسوردی که کش هم بشود بسیار بد است. amirlol 12 مرداد 1386, 12:59وقتی session رو می بندی ! فقط و فقط سیستم به صورتی در می یاد که کثل یه SCREEN SHOUT میشه و کافیه اول هر صفحه session ها چک بشه leila_karimi 13 مرداد 1386, 09:33به نظر من شما باید اول از همه جلوی کش شدن سایتتان در کامپیوتر بازدید کننده را بگیرید که من با asp classic بلدم و net. را نه. یوزر و پسوردی که کش هم بشود بسیار بد است. دقیقا منظورم همینه حالا چی کار کنم؟ تو mail.yahoo اتفاق جالبتری می افته بعد ازsignout هر وقتback را درIE بزنیم به صفحه login بر می گردونه انگار دارهback را مدیریت می کنه. اگر کسی راه حل را در زبانASP.net می دونه لطفا راهنمایی کنه چون من خیلی گیرم mehranzand 13 مرداد 1386, 12:24در مورد کلاس FormAuthentication تحقیق کنید mosyhey 13 مرداد 1386, 15:26ابتدا باید جلوی کش شدن را بگیرید. اگر توانستید جلوی کش شدن را بگیرید وقتی کاربر پس ار لاگ اوت کلید back را زد، صفحه دوباره از سرور تقاضا می شود و با یک اعتبار سنجی ساده در ابتدای صفحات می توان تعین کرد که اگر کاربر سکشن معتبر ندارد او را به صفحه لاگ این بفرستیم. من دستوراتی که مانع کش شدن در asp classic می شود را می گذارم امیدوارم کمکی بکند. <% Response.Expires=-1 Response.ExpiresAbsolute=Now()-2 Response.AddHeader"pragma","no-cache" Response.AddHeader"cache-control","private" Response.CacheControl="No-Store" %> leila_karimi 14 مرداد 1386, 11:53ممنون اگه تونستم جواب بگیرم با توضیحش همینجا می نویسم morTeza_CS 15 مرداد 1386, 10:31فکر کنم یه کم دیر اومدم تو بحثتون . راهی پیدا کردید ؟؟؟ نظره من اینه که شما Session رو که پاک کنید و در نهایت برای اطمینان بیشتر () Session.abandonکنید .....شخص بعدی اگر دکمه Back رو هم بزرنه فقط میتونه اطلاعات قبلی رو ببینه ، که Cache خود مرورگر هست ، به محض اینکه کاربر عملی انجام بده چون Session ی وجود نداره قاعدتا به صفحه ورودی منتقل خواهد شــــد. اگه راه بهتری پیدا کردید حتماً بگید leila_karimi 16 مرداد 1386, 13:41مشکل همون cash مرورگره که حل نمی شه leila_karimi 18 مرداد 1386, 10:26using System; using System.Web; namespace TT.Web. { /// <summary> /// to prevent caching /// </summary> public class NoCacheModule : I { public NoCacheModule() { } #region I Members public void Init( context) { context.EndRequest += (new EventHandler(this.Application_EndRequest)); } public void Dispose() { } private void Application_EndRequest(Object source, EventArgs e) { context.Response.Expires=-1; context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-100); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", "private"); context.Response.CacheControl = "no-cache"; } #endregion } } من ای کد را پیدا کردم که asp.net هست ولی بلد نیستم استفاده کنم leila_karimi 27 مرداد 1386, 13:55جواب سوال مطرح شده در این topic: یک کلاس ایجاد کنید(.css)و این کد را داخل آن بنویسید :using System; using System.Web; using System.Web.UI; public class NoCacheModule : I { public NoCacheModule() { } #region I Members public void Init( context) { context.EndRequest += (new EventHandler(this.Application_EndRequest)); } public void Dispose() { } private void Application_EndRequest(Object source, EventArgs e) { application = ()source; context = application.Context; context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-100); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", "private"); context.Response.CacheControl = "no-cache"; } #endregion } حالا در web.config زیر system> این کد را بنویسید <> <add name="myNoCacheModule" type="NoCacheModule"/> </> تا اینجا یک فاز کارو انجام دادین در فاز دوم : با زدن دکمه خروج یهsession خاصی را مقدار دهی کنید (مثلا Session["SessionUid"] = "Exit";) و در صورتی که یک نفر با userو pass معتبر وارد شد آن را null کنید حالا در بالای هر صفحه این کد را اضافه کنید protected void Page_Load(object sender, EventArgs e) { if (!Page.IsPostBack) { if (Session["SessionUid"] != null) Response.Redirect("LogIn.aspx"); MS_Katebi 16 بهمن 1386, 09:36ممکنه این عمل رو با Php هم بفرمایید ؟
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 2144]