If you embed session the URL, use some common sense:
- if a session shows no activity for 30 minutes, kill the session and start a new one. depending on your site, this may mean asking for a login, or it may mean just cutting a new session key.
- if a session comes in that is "inconsistent" (different browser type, different referrer, etc) with the last session request, kill the session.
- as merlyn says here, make the session key unguessable
While these don't fix the problem completely (eg users coming in from AOL via the same AOL proxy machine might be able to swap sessions if they do it reasonably quickly), they go a long way to reduce it.