List:MySQL++« Previous MessageNext Message »
From:Warren Young Date:September 5 2008 7:31pm
Subject:Re: How to protect database information in open source projects
View as plain text  
Jean-Sebastien Stoezel wrote:
> 
> While I will be distributing the source code - which as you underline
> it - can be reviewed and modified by any user, the database this code
> is supposed to access will be shared by all the users. This is not a
> database that will run locally on the users' machine. This will be a
> remote common place to gather information about the users.

In that case, I recommend a standard 3-tier architecture: the client 
talks to a server you write which in turn talks to the database server.

The protocol between the first two tiers can be any sort of networked 
IPC or RPC you like: HTTP, XML-RPC, ONC RPC, UDP packets, a custom TCP 
protocol, whatever.  You need to be careful how you choose or design the 
protocol, because it will affect how easy it is to validate the incoming 
client requests.

The middle tier program inspects each incoming request, and updates the 
database if it looks sane.  You build it with the same sort of sanity 
checking you would use in the server-side code of a web application.  In 
addition to the validation, this lets you provide a much more 
restrictive API than libmysqlclient.  Your users can only do what your 
protocol allows.

The middle tier program must reside on hardware you control for this to 
do you any good.  Unless your load is so heavy you need to partition the 
server parts so they live on two different machines, it goes on the same 
machine as the DB server.
Thread
How to protect database information in open source projectsJean-Sebastien Stoezel5 Sep
  • Re: How to protect database information in open source projectsWarren Young5 Sep
    • Re: How to protect database information in open source projectsJean-Sebastien Stoezel5 Sep
      • Re: How to protect database information in open source projectsWarren Young5 Sep