views:

38

answers:

4

Usually we define iis web sites which allow anonymous authentication to run under the IUSR_ComputerName account which has very limited privileges. For example we may decide it cannot access the file system. How does that make our web site any more secured? The user cannot run code on it anyway - only our website code runs and we make sure it does not cause any harm.

Edit: I understand why it is good to be on the safe side (e.g. iis exploit). My question is if there is any direct reason. For example, if I would never give a guest account full privileges on a sql server as it would immediately allow him full control over my server. This does not seem to be the case with iis.

+2  A: 

we make sure it does not cause any harm

You can be never sure about it doesn't cause any harm. One day, it might be exploited, and probably the less privileged user would save your data. No offense, but no one writes perfect code, therefore no code is vulnerability free.

erenon
+1  A: 

If you have any network service you should assume that some random person on the internet has a command prompt on your machine running as that services's owner.

Now ask what damage that user good do?

Martin Beckett
But that socket communicates with a web server which only allows to run code I have written.
Yaron Naveh
The socket takes arbitrary data and writes it into memory - if you are good (or lucky) it doesn't execute that data!( if you really don't believe this, lookup buffer overflow )
Martin Beckett
A: 

Typically, you may need to run your web site in a way that is a little less hardened from a security standpoint than, say, a domain server or exchange. For example, you may need to permit FTP access. Obviously, Internet web sites need to be accessed from the Internet so you cannot simply block all access with your firewall.

Because of the higher vulnerability, it is prudent to run your service with an account that has limited permissions. In the case where a malicious user does succeed in copying their own programs to be run on your server, those programs will have severe limitations as to what they can do.

Glenn
A: 

You can run code on the server, for example you can delete files in a directory if the permissions are not set.

Dustin Laine
How can this be done with POST and GET commands?
Yaron Naveh