[問題] asp.net session與cookie時效問題?

作者: liaommx (Orz)   2021-04-15 21:29:32
目前在使用session上碰到一些問題.
環境是iis(版本不確定) c# asp.net寫的
使用者登入登出其實都沒問題,
可是如果是使用fiddler做代理.
點了登出把session 做了abandon,removeall,
也做了cookie 清空asp.net_sessionid
Response.Cookies.Add(new HttpCookie("ASP.NET_SessionId",""))
此時把當初fiddler記錄到的request做replay,
iis server還是會回應相對應的cache.
導致只要能監聽到相對應的封包,就可以取得server同樣的回應.
如果replay時也要把回應的這些cache都不回應的話,
應該從code本身的登入機制著手呢?
還是該往iis server設定的方向去著手?(例如header no-cache等等的方法)
不知道大家有沒有什麼想法可以建議呢?
作者: EnjoyLife000 (Enjoy_Life)   2021-04-21 12:22:00
可能要先弄清楚session實際的運作機制,根據內文上來看,你的方向是錯誤的
作者: ssccg (23)   2021-04-22 15:19:00
Session.Abandon、RemoveAll應該都只是清掉session存的東西Cookie是給正常的那個client指示,你用另一個client去replay那就跟Cookie怎麼設沒關係,要擋這個需要的是server-side要invalidate SessionId→登入狀態這個關係其實一般的Web framework都會在lougout時自己處理這個,但ASP.NET就是不會,SessionId一發出去就要到期才失效要解決這問題就是你自己要多實作一個記錄登入狀態的機制每個request來你要多檢查你自己管理的狀態是不是已登出這問題10幾年來就是沒修,應該可以找到很多解法...
作者: liaommx (Orz)   2021-04-23 07:11:00
感謝以上兩位提供意見,最後還是在session logout時紀錄session id,然後做判讀,若有相同session來就redirect

Links booklink

Contact Us: admin [ a t ] ucptt.com