Usually the aims of safe mode are:
- To stop several web applications run on the same machine from interfereing with each other due to security problems
- To prevent a badly constructed application from enabling an attacker to take control of the machine
Safe mode does theoretically do that well. There are a lot of potential loopholes though. PHP6 may remove safe_mode, but it will doubtless replace it with something that has a similar effect.
The user ID checking facility of safe_mode isn't really terribly helpful, which is a pity, because many of its other effects are desirable.
You can achieve similar results with open_basedir and disable_function, but not quite. I hope PHP6 addresses this adequately.
Mark