On 04/16/2010 11:53 AM, Caleb James DeLisle wrote:
It might sound silly but if there are no security
requirements then there are no security holes.
We all know when we see something which shouldn't happen but I don't think there
is any page
defining exactly what the security requirements are.
1. Users should not be able to spawn additional processes on the server.
They should, with Programming Rights. For example the SVN application
needs to execute SVN commands. I'd say that it would be better to secure
the server than the application. This is the reason why the container
should never run with the root account. A very secure setup should have
a proper chrooted environment running with a limited user in a virtual
machine, and maybe with a security policy in place which lists
everything that the application can do. We should just prevent data
loss/corruption/access on our side.
2. Users should not be able to commit changes to the
database except through the saveDocument function.
Agreed.
3. Users should not be able to save documents without
their name as the author or contentAuthor as applicable.
Not using the public API. With Programming Rights it is possible, and
I'd say that it should be kept this way.
4. Guests should not be able to execute server side
script except that which was written and saved by a user.
Agreed.
This list is doesn't cover much yet, I hope to see
some additions and discussion of may code may violate some
the rules as well as how we can have 'untrusted' code which is unable to violate
the rules.
I propose we put up a design page for maintenance of this list.
WDYT?
Caleb
--
Sergiu Dumitriu
http://purl.org/net/sergiu/