about summary refs log tree commit homepage
path: root/site/src/security.page
diff options
context:
space:
mode:
Diffstat (limited to 'site/src/security.page')
-rw-r--r--site/src/security.page75
1 files changed, 0 insertions, 75 deletions
diff --git a/site/src/security.page b/site/src/security.page
deleted file mode 100644
index b7d169d..0000000
--- a/site/src/security.page
+++ /dev/null
@@ -1,75 +0,0 @@
----
-title: Security
-inMenu: true
-directoryName: Security
-ordering: 2
----
-
-!/images/iron_mongrel.jpg!
-
-h1. Iron Mongrel Security
-
-This is where we'll be putting security tests, alerts, and advice for people running Mongrel. We test Mongrel fairly heavily using the following techniques:
-
-# Unit testing what I can.  Mongrel is a server so many tests have to be done "live".
-# Thrashing Mongrel's HTTP parser internally with random or near-random data (called fuzzing).
-# Using "Peach Fuzz":http://peachfuzz.sourceforge.net/ to thrash several live apps with randomness.
-# Running several extensive little scripts to explore the edges of death for Mongrel.
-# Heavy code audits covering as much code as possible to find any possible loose ends.
-
-The end result is a lot of little fixes which make Mongrel more robust against badly behaving clients and possibly against many potential security risks in the future.
-
-
-h2. Mongrels HTTP Restrictions
-
-Many of the exploits out there currently for web servers tend to exploit either
-ambiguous areas of the HTTP grammar, or the lack of size specifications in the
-protocol.  To protect against this Mongrel uses a fairly strict parser, but
-since many browser authors don't read specifications (and hell, who'd want to
-read the mountain of HTTP specifications out there), it can't be too
-strict.  What it does enforce (apart from well formed headers and request
-lines) is the following size restrictions on each part:
-
-* Any header over 112k.
-* Any query string over 10k.
-* Any header field value over 80k.
-* Any header field name over 256 bytes.
-* Any request URI greater than 512 bytes.
-
-The large header size and field value is due to cookies being allowed to be so
-massive.  It's not too clear whether a browser is allowed to cram all 20 of the
-4k cookies into one cookie header, or if it should use multiple, but the end
-result is that a web server has to parser at least 112k of garbage before it
-can declare a client malicious.
-
-Now, when we say Mongrel is strict, we don't mean that it will abort on any minor
-little error according to the HTTP 1.1 RFC.  Mongrel's parser is pretty
-forgiving on formats.  Where Mongrel is exact is (as mentioned before) in it's
-treatment of sizes and boundary characters.  Clients that can't even get that
-right aren't following the most basic safety elements of HTTP and you probably
-shouldn't deal with them.
-
-
-h2. Quiet Things Happens To Bad People
-
-Rather than wasting any more time--and in order to not give out any information
-to potentially malicious attackers--Mongrel just closes the socket immediately.
-This may confuse good people, but it's the best way to deal with bad requests.
-
-The assumption is that either the requesting client is not functioning
-correctly or it's attempting an attack.  If it's not functioning correctly then
-what's the point of sending back any results?  It probably can't parse them
-anyway.  If it's an attacker then why give them any more information?
-
-Caught in the middle are people who are using a poorly written client. We'd
-suggest in those cases that they report the problem to the client's authors or
-contact us to see if it's an error on Mongrel's part.
-
-h2. Reporting Security Problems
-
-If you think you've found a security problem with Mongrel, please report it to the list right away at http://rubyforge.org/mailman/listinfo/mongrel-users.  We're usually very responsive and will probably help even if the security problem is outside of Mongrel or if you need help securing your system.
-
-h2. Logo
-
-The logo is courtesy court3nay from "caboose":http://caboo.se/
-