Sessions have been known to be fairly save... The only problem is that they can be hijacked by evil sites... by placing a link on your site... In some occasions php will show the sessionID in a link, and if that link is displayed (with SID) it becomes vulnerable... take a look at this link:
www.evildeveloper.com/storesession.php... not much to worry about, but what if an user without the session cookies accepted would click it, it wouldn't go just to www.evildeveloper.com/storesession.php but it would add a variable ?SID=b14mmh234klnbhbk23lkvj or w/e

so if that site uses a referrer it'd be capable of "stealing" the userid or w/e there is stored in the session just by going to the referrerpage... then he'd suddenly be logged in as the user who clicked the link!!
I hear you think, omg that's bad news but we have to be real... the chances of hijacking a session aren't huge.. But you could make the chances even slimmer by setting a different session name in the ini file... the default seems to be PHPSESSID, set it to w/e you want in php.ini.... it's against automated hijack scripts... but a hacker could easily recognize the session... and hijack it anyway, so we need something more complicated than changing the session name...
Why not set the session.referer_check in php.ini? I think it should only allow session from that site... so... no more hijacking, please read this at php.net/sessions because my English could be failing me, but I do think this ini option is the solution to the hijacking of sessions.
Well that's about it, with the right configuration sessions should be safe.. Hope this was of any help...
Cheers, Jeroen