||[Sep. 8th, 2005|10:34 pm]
Sometimes PHP REALLY annoys me!
Not the language or libraries as such, but some of the problems that arise. I'm damned sure I'm not the first to have them, but GAH! GAH! And... GAH!
Ok, so php is one of these things that is very very useful. To be honest, I'm appreciating the language more now. I'm appreciating the libraries, and I'm getting good at debugging other people's shoddy scripts so it runs on my own webserver.
HOWEVER, the problem is the fact that I'm planning to offer CMSs and blogs to each user on a server for a society that will potentially have 500 members (not as many as we used to have in the Golden Days... but still ok). Of course, this is where the fun begins. We have 500 members, some more proficient with php and unix than others. So I need to figure out a secure way for each person to have their site, but not to have enough access to trash another users' site.
This would be much simpler if we could run scripts as the owners UID. It would mean that the owner need only set permissions for themself and the rest be damned. But that only applies if you run php as as cgi module. The problem with that is that then a lot of scripts break and say that they want it as an apache module. So the scripts run as apache. Therefore permissions are left damned near wide open. This is especially true as lots of scripts want write access in people's webdirs... what with being a cms, I can see why. But that means we have to be exceedingly careful about who we let write to other people's home directories. Another huge abuse waiting to happen... and even if we don't give the group access to write, people could write scripts which would accept uploads and write them to another user's homedir. Of course, safemode is a way around that, however safemode breaks most cms software because safemode doesn't seem granual enough.
It's enough to wonder why we want to offer the services.
The problem is, we need to get new members, and to do that, we have to offer uptodate services... and content management systems are one of the best ways to go, because then they don't need to know about crap like uploading stuff with ftp or, worse, scp (much and all as I love it... it's not user-friendly).
I want to scream on occasion.
If I knew enough, I'd closely follow the php and apache developments and see if I could help with the whole security issue, because right now, it sucks more than slightly. And I'm sure I'm not alone. But right now, I feel like I am.