Closed Bug 86174 Opened 23 years ago Closed 20 years ago

Session-cookies do not expire when closing all windows

Categories

(Core :: Networking: Cookies, enhancement)

enhancement
Not set
normal

Tracking

()

RESOLVED WONTFIX
Future

People

(Reporter: peope, Assigned: mconnor)

References

()

Details

From Bugzilla Helper: User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.1) Gecko/20010607 BuildID: 2001060703 Session-cookies eg session-id for a php-page. Persists until you have closed the app completely. If I go to a page, get a session-cookie, open tasks/mail. Close the browser window. Open a new browser window. The session-cookie is still there. When I close all Mozilla-windows. It is gone. Reproducible: Always Steps to Reproduce: 1. open mozilla -mail 2. open mozilla 3. Goto a site with session-cookies in browser 4. Close browser window(s) (all of them) 5. Open new browser window 6. The session-cookie persists Actual Results: The session-cookie persists. Expected Results: The session-cookie should have ben removed.
I don't know if this bug is valid. But I can confirm this. -> cookies
Assignee: asa → morse
Status: UNCONFIRMED → NEW
Component: Browser-General → Cookies
Ever confirmed: true
QA Contact: doronr → tever
As long as you haven't closed out the app, you are still in the same session.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → INVALID
Sure. It works like that. But SHOULD it work like that? I often have mail-window open. It has a much different role than the browser. Think that a session-cookie should be deleted at least when there are no more browser-windows open. What do you think?
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Severity: normal → enhancement
Target Milestone: --- → Future
I definitely think the "session" should be the application session, not the browser-window session. Closing all the open application windows is not a "special" event. Think of it this way: Why should the session cookies be "forgotten" when closing a single window (leaving no open windows), but not when closing 8 out of 9 open windows (leaving 1 open window)? I suggest marking this bug invalid.
I do not think this should be closed. As I see it Mozilla contains several applications in one program. You got the Browser, Mail, Composer and IRC-client. Sure Mail and Composer share html-rendering with he browser but there is where it ends. Think of this: From any (almost) browser window you can get back to the page with the cookie. If you only have a mail, irc or composer - window open you cannot go back to your old webpage. You would need to open a browser window to do that. Thus you (at least I) would expect the session-cookie to be forgotten. Think the session-cookies should be isolated in the following order: 1. Application (Multiple users, using X on the same server eg) 2. Webbrowser-domain of Mozilla Best regards Per-Olof Pettersson
I'm not convinced. Let's say I'm working in a browser window and then switch to mail to read and send some messages. I then go back to Web browsing. Why should it matter whether I left my browsing window open, or closed the window and opened a new window? I can see what you mean, but I think the majority of users (including me) expect "session" to refer to the application session (between starting and quitting Mozilla). I still favor marking this bug invalid.
Blocks: 100573
I think this should be kept open and addressed. Cookies relate to the browser window, not the application. You dont have cookies in news or in chat or in composer do you? If I did a browser-only install should the session end on exit from Mozilla or on exit from the last active window? i would say they are both the same... If I open a webpage that uses a session cookie and then close my browser down, the cookie should be expired. This is how IE, NS4, Opera etc etc etc does it.
> This is how IE, NS4, Opera etc etc etc does it. Not true. Mozilla and NS4 do it exactly the same.
Uummm you are indeed correct. I made an assumption based on a project I was recently working on. Thinking back the version of Netscape in use was Navigator 4.08 so it was only a browser. That project involved a cookie holding session specific information that was meant to expire once the BROWSER was closed. It worked perfectly in IE, Opera, NS4.08 but did not work in Mozilla unles you killed the entire application - which is a bit of a bitch as it negates the benefit of having QuickLaunch.
Quicklaunch is another issue and the session cookies for it are being addressed somewhere else. If all windows are closed, indeed the session is ended.
I confirme, under Windows with quicklaunch enable, this bug is very annoying (with v0.9.8)
Just to clarify my comment #10 above. When all windows are closed, all session cookies are released. That is true whether or not quicklaunch is enabled. The bug that deals with releasing session cookies when quicklaunch is enbabled is bug 129819 and the patch for it has been checked in.
OK. QuickLaunch issue is resolved. Still a bitch though. I worke remotely and use chatZilla. To fully expire a cookie I need to close it which is damn annoying. I am working on various e-commerce systems and session expiration on BROWSER shutdown is crucial. Apart from anything else, just testing functionality that is meant to occur on browser shutdown is a pain as I have to either kill all windows, or disable then re-enabl cookies in prefs or do as I am now and use Moz for chatZilla and NS7 for browsing. How difficult would it be to do this?
If I receive a session cookie while browsing, and then I shut down that window or tab, I would expect that "session" to have ended. You have to look at it from the perspective of websites and how they would track visits and not from the application's perspective.
Security-wise, many websites tell users to close the browser window to ensure they are logged off (and that their session is expired). This can cause unexpected security issues: imagine on a machine in a public library, someone goes to a secure website, logs in, downloads a file, then closes the browser window. If any other browser windows (or even the "download manager") are left open, anyone can walk up to the system, go to the site, and be logged in as the previous user, providing the session hasn't timed out on its own. It is also non-intuitive--why should the user have to close their browser window viewing google.com just to expire the session in their other browser window viewing amazon.com? Even though all the browser windows share the same process, they should still _appear_ to be several independent instances of the same application.
I also think, there should be a possibility to start a new session. I am a web developer and I often need several sessions open concurrently for testing reasons. Up to now I used IE, where there was such a possibility. If you open new window from existing window (right click on hyperlink, Ctrl-N, file->new window menu, etc.) they share the session. If you open a new instance by clicking on IE shortcut icon, the new session is started. I don't insist on havin exactly the same behaviour as in IE, but I definetely would like to have multi-session functionality. Favourably even without necessity to close all the browser window. Perhaps the rule could be: tabs share sessions (session cookies), windows don't. It shouldn't be that difficult to implement.
Scenario: I browse an online catalogue of products. I right click a product and open its details in a new window. Then I finish browsing the catalog and close that window. The session has _not_ ended, because I still have the other window. And when I go to a completely different website in that other window, the session _still_ hasn't ended, because I might use the Back button to go back. However, when I close the window, the session _has_ ended, even if I have other browser windows open. If a site is making the user close a window to finish the session, that's just false sense of security - it doesn't work that way even in IE, as described in comment 16. Solution: 1) Session cookies should have a session-ID, so that there can be multiple cookies with the same name, domain and path but different session-ID. 2) Windows/tabs should have a session-ID property. 3) Session-ID's should use reference counting. 4) New browser windows/tabs (Ctrl+N, Ctrl+T, Ctrl+1, new start of Mozilla...) should get a new, unique session-ID. They would use this session-ID (with refcount=1) to identify session cookies that are relevant to them. 5) When one opens a link into a new window/tab, or when a new window gets opened by JavaScript, that new window/tab should inherit the session-ID from the parent window/tab, AND increase the reference count of the session-ID. 6) When a window/tab is closed, it should decrease the reference count of its session-ID. If it is zero, the session can be freed, and all its session cookies deleted. How 'bout that? (And setting hardware/OS to all/all.)
OS: Windows 2000 → All
Hardware: PC → All
profile sharing will probably provide the basic backend functionality for this, though there'll be much more to do in terms of allowing multiple processes of mozilla before it'll actually work.
Woah, hold your horses there! Multiple processes is overkill. I don't think it's necessary to have that in order to implement comment 17. In fact, I'm inclined to think that it's realizable completely in JS, without touching a line of C++, though I'm not sure about this.
For my 2 pennies worth, I'd like to see this fixed. I'm using Firebird with multiple tabs, and do lots of web development. When I connect to a local application server it gives me a JSESSIONID, but when I close the tab it doesn't get deleted, even though I have other tabs totally unrelated to the page the session was for. It's not just other tabs being open either, viewing the source of a completely different page on a different site, or using the bookmark manager means the cookie won't get deleted, and that just seems plain wrong. I'd like the tabs to be treated as separate mozilla/firebird instances (or sessions), and if you close the tab, kill any session scoped cookies associated with that tab.
Forgive me if this is off-topic / incorrect, but isn't this also a possible security issue? If different tabs/windows aren't sectioned off from one another, this isn't there the potential for the session cookie information set by a sensitive site in one tab (say online banking for instance), assuming that it uses session cookies, to be read by sites in other tabs/windows?
no. cookies can only be read/altered by the sites that set them.
So the only possible security related issue here would be the case where you close out a site without actually logging out (but don't exit Mozilla), leave your desk, and some co-worker or other family member comes in, opens up the site again, and some of the checks are bypassed because the session cookie is still active - as per comment 15. I just confirmed this both with phpBB boards (MozillaZine), which is not that big a deal, and my own online banking site, which is much more of a big deal. I would have to agree that if I close my online banking tab I should be forced to login again if I revisit it (without first exiting Mozilla). The fact that I don't explicitly log out is incorrect user action, but any negative results from that shouldn't be impacting the browser side of the equation. As already suggested, if said online banking site opens up a 2nd window/tab of its own, existing session cookies should be duplicated but for the unique id associated with that new window/tab, so that security credentials are maintained. However, this does pose problems in terms of what new windows/tabs some sites will open up. You could say that only if the originating domain is the same should the session cookies be copied, so as to avoid popup/redirect sites, etc. - but what of sites that use a merchant service where the a totally different, yet legitimate, domain is used? Is there any way of determining legitimate vs. illegitmate use here? In any case, I would first implement things so that only new tabs/windows created by the 1st site can make use of that 1st site's information. Then (try to) deal with this further aspect of things in a separate bug. Should the "privacy" keyword be added here?
Forget the part of my last comment about addressing the situation where one site opens up a totally different site (legitimately or not) being a problem. As I *had* known before I stupidly asked, and as Dan already replied, "cookies can only be read/altered by the sites that set them". I seem to be having some kind of intellectually challenged day today...
Most ecommerce/banking sites also use timeouts in case the user does not log out or their connections drops and they can't get back online etc.
Bug 117222 might be a dup.
I can confirm that Firebird 0.6 does not expire session cookies when all instances of the browser are closed. I guess it is due to the quickstart feature as firebird is still active as a process under NT4. This is very bad though, as a user should not be expected to know that once they have closed down all visible signs of the browser that it will still be hanging onto their session variables (typically used to confirm security credentials). I have closed down Firebird and then come back to the machine the next day, launched Firebird and been horrified to find I was still logged into a PHP application. (NB: It is on a testserver which has no timeouts set). But Firebird should NOT rely on people logging out of applications, as it is pretty reasonable for them to assume that if they close the browser that is the same thing. Certainly IE6 works this way. Apologies if this is fixed in version 0.7, but that version doesn't list NT as a supported platform and I daren't risk stuffing my machine by installing it as I am well behind with a website as it is. I guess I'd better get back to it.
Andy: That's a different bug. This bug (or RFE, rather) applies to Mozilla-the-application-suite, and requests that sessions expire when all browser windows pertaining to the session are closed (i.e., potentially sooner that all Mozilla windows are closed, or even before all browser windows are closed, but that's a matter of opinion).
*** Bug 200336 has been marked as a duplicate of this bug. ***
leaving the "when should a session be a session" stuff in bug 117222, we still have the issue of whether closing all browser windows should purge the session cookies. taking to evaluate
Assignee: morse → mconnor
Status: REOPENED → NEW
Depends on: 239759
QA Contact: tever → benc
Summary: Session-cookies do not expire when closing window. → Session-cookies do not expire when closing window
as darin pointed out in a discussion on IRC, to do this properly would require clearing memory cache and SSL session info, since sites may depend on the two being related. Doing that would probably require reworking how memory cache and SSL sessions are persisted, especially since they don't differentiate between mail/browser objects. His opinion, which I share, is that this isn't worth fixing at this stage of Seamonkey's existence. If it was good enough for NS 4.x and every Mozilla version until now, its good enough to keep. Since Seamonkey is on a sustained engineering path, and the move is towards standalone apps that do not share session data, I don't think fixing this is viable/desirable since it would introduce mostly unnecessary changes to components that don't need to be changed for anything except Seamonkey.
QA Contact: benc → cookieqa
fair enough, just be aware that mozilla will therefore never make a decent kiosk substitute until this is fixed due to security concerns. mark
mconnor: why makes firefox fixing this easier? you still need to clear out memory cacha and ssl sessions. In firefox, cookies are also not bound to a window. So how do you know which cookies to remove?
mvl, this bug is mostly about clearing session cookies when all navigator windows are closed, we can easily dump memory cache/SSL sessions on Firefox since we don't have to figure out what belongs to mail and what belongs to browser. Mark, please clarify your comments. If you use just the browser, this isn't an issue assuming you close all windows. If you have a mail window open, the cookies don't get cleared. If you're using a kiosk setup, Firefox seems the better option in any case.
having thought way too much about this, I don't believe this is worth fixing. Neither does darin or dwitte, for that matter. Being that this not only would have to touch cookies, but SSL and cache, and given that only Seamonkey would benefit from it, there is no point in fixing this at this stage. In fact (although this is theory/speculation) to fix this for Seamonkey would create baggage for standalone apps like Firefox and Thunderbird. If you want session cookies gone when closing all of your browser windows, use Firefox.
Status: NEW → RESOLVED
Closed: 23 years ago20 years ago
Resolution: --- → WONTFIX
I can accept that this won't be fixed, although I find the justification for it to be pretty objectionable - as phrased anyway. Saying "if you don't like it then use Firefox" is a little draconian. The last time I looked, mozilla.org had not discontinued, nor dropped support for, Seamonkey. With this attitude, we shouldn't be developing 1.8a at all - just FF. Much more reasonable, I think, would be to simply reassign the bug to "nobody" and just not work on it yourself... (The comment isn't meant personally, and I don't mean it to be a flame, I just find the viewpoint to be a little distressing.)
seamonkey isn't in active developement, its in sustained development, which means that seamonkey-specific changes that involve large engineering effort simply aren't being done. While we will continue to work on improving the base behind the suite, implementing changes across multiple modules for what is effectively a seamonkey-only bug just doesn't make sense. Leaving it for someone to work on is just an invitation to waste someone else's time. If someone has the skills and time to invest in integration work, there's a lot of bugs out there that need to be fixed. As for the Firefox comment, perhaps a better phrasing is "if you want browser and mail sessions kept separate, use standalone apps (i.e. Firefox/Thunderbird) instead of an integrated one (Seamonkey)" This bug at its core is about making the navigator windows act like a separate process from the mail process, and since as an organization we've gone beyond that in producing standalone apps instead of the monolithic suite, this bug is nowhere near as relevant/important as it would have been if we'd fixed it three years ago.
Cleaning up summary to say what comment 0 says. To keep me from wrting useless comments. (Wait, i just did that, and deleted it again...)
Summary: Session-cookies do not expire when closing window → Session-cookies do not expire when closing all windows
*** Bug 253546 has been marked as a duplicate of this bug. ***
You need to log in before you can comment on or make changes to this bug.