note
phydeauxarff
I may be misunderstanding your point about storing the password in a file "makes it more difficult to control security".<p>
We have several hundred pages of CGI that have to access our mySQL database and in our own attempt to make the system more secure (this system is not on a public web, but only available to our employees..but still, it doesn't hurt to be careful) as well as easier to code and manage, we store the mySQL username/password info in a seperate file .<p>
Here is the code for the file that sets up the mySQL connection<br>
<code>
package Data_config;
use Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(
$DBHOST
$DBPORT
$DBDRIVER
$DATABASE
$USERNAME
$PASSWORD
);
## Database configuration ##
our $DBHOST = "localhost";
our $DBPORT = "3306";
our $DBDRIVER = "mysql";
our $DATABASE = "database";
our $USERNAME = "database";
our $PASSWORD = "password";
</code>
<br>We can then make our mySQL setups in each of our CGI scripts with<br>
<code>
## Create a database handle ##
my $DSN = "DBI:$DBDRIVER:database=$DATABASE:host=$DBHOST:port=$DBPORT";
my $DBH = DBI->connect($DSN, $USERNAME, $PASSWORD, {
RaiseError => 1,
PrintError => 1
});
</code>
<br>this gives us not only the security of not having the mySQL username/passwords in the CGI but also makes it very easy to change the username/passwords on the server since they are stored in one location.
251107
251118