Database lookups across firewall

Ryan Russell
Tue, 16 Jun 1998 09:38:28 -0700

1) I don't see the extra protection in the second machine,
assuming they're both on the DMZ.  If you're saying that the second
machine is inside, then that's worse, as you now have a web server
on the DMZ able to execute CGI on an inside machine.

2) Really, really bad.  Don't do this.  When the web server gets
it has full access to the inside because it's inside.

3) This is the choice I usually pick, if it's workable in your situation.
me be a bit more specific, though.  My favorite setup is to have an
inside machine replicate/push the needed data out to the DMZ
machine.  Once it's there, the web server just does local lookups.
This way, the inside machine gets to control when the connection
is up, and acts as a client, reducing risk somewhat.  One reason this
arrangement wouldn't be workable is if the data gets updated too often
to replicate.

and I'll add one:

4) Allow the DMZ web server to do your favorite flavor of SQL lookup
to an inside databse server.  This has the advantage that the data
is always up to date, and changes are reflected immediatly.

Number 4 is my second choice.

In any of the situations, what you're trying to protect is the database
If you have a DMZ server that has access to the data, and that server
gets compromised, then the attacker has the data.  There is no way
around that.  In situation number 3, they have only the data that's on the
server, and hopefully you've kept the minimum amount possible out there.
In situation number 4, they have access to possibly all the data on the
whole database server, assuming there is more than just the stuff the
web app uses.  Depending on your firewall structure, they may also
have part of a hole to the inside to play with.


"Rick Horne" <> on 06/15/98 09:21:36 AM

Please respond to "Rick Horne" <>

cc:    (bcc: Ryan Russell/SYBASE)

     I'm looking for information on the best way to allow our web server to
access an internal database.  We are beginning an Internet commerce
site.  I've heard of several techniques:
1) The web server has wrapper/stub cgi programs that call cgi routines
on a second external box that has permission to cross the firewall
(a.k.a. a cgi reflector)
2) Move the web server inside and proxy it out to the Internet.
3) Export database to external server and allow web server to hit that

I know that many thousands of companies are doing commerce but I've been
unable to find a best practices document or other such info.

Thanks in advance for any comments, info, or pointers to where I can
find some info.


Get Your Private, Free Email at

Received: from ([]) by
(Lotus SMTP MTA v4.6.1  (569.2 2-6-1998)) with SMTP id 88256625.0023B254;
Mon, 15 Jun 1998 23:29:54 -0700
Received: from (smtp1 [])
          by (8.8.4/8.8.4) with SMTP
       id XAA18742; Mon, 15 Jun 1998 23:27:38 -0700 (PDT)
Received: from by
     id AA02566; Mon, 15 Jun 98 23:27:38 PDT
Received: from ( [])
          by (8.8.4/8.8.4) with ESMTP
       id XAA17370; Mon, 15 Jun 1998 23:29:01 -0700 (PDT)
Received: (from lists@localhost)
     by (8.8.8/8.8.8) id VAA00073
     for firewall-wizards-outgoing; Mon, 15 Jun 1998 21:08:25 -0500 (CDT)
Received: (from fwiz@localhost)
     by (8.8.8/8.8.8) id VAA00063
     for; Mon, 15 Jun 1998 21:08:18 -0500 (CDT)
Received: from ( [])
     by (8.8.8/8.8.8) with SMTP id LAA26887
     for <>; Mon, 15 Jun 1998 11:17:55 -0500 (CDT)
Received: (qmail 4009 invoked by uid 0); 15 Jun 1998 16:21:37 -0000
Message-Id: <>
Received: from by with HTTP;
     Mon, 15 Jun 1998 09:21:36 PDT
X-Originating-Ip: []
From: "Rick Horne" <>
Content-Type: text/plain
Date: Mon, 15 Jun 1998 09:21:36 PDT
Precedence: bulk
Reply-To: "Rick Horne" <>