Re: php-postgres-apache Security

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



* ameen eetemadi <ameen78101@xxxxxxxxx> [19 05 02 13:43]:

>I am writing php on a
>server(OS:linux,WebServer:apache) that other users can
>write cgi and have shell on it .
>I want to connect to a postgres server in my php file
>without asking username and password !
>then I must write the username and password in this
>file .
>Then other users can read it and drop my database .
>
>can I connect to the postgres through .php file
>without a security bog?

I think there are two possible solutions: 

I
As far as I know the php-scripts are running under the User-ID of
the web server, for example "www-data" if you are using Debian. 

So you can do the following: 
1. Create a directory: mkdir /*/file/.
2. Write a file which includes for example just:
  <?php
  $db = pg_connect("dbname=db user=user host=host password=pass");
  ?>
  
  then: => chmod to 400
        => chown to www-data

3. If you want to connect to the database, use in the php-script
   require("/path/to/the/file/filename");

4. Make shure nobody else can get the user www-data.


II
You must limit the rights of the users for the db, for example make
shure, that you have something like

local  all 		                       password
host   public_db  127.0.0.1     255.255.255.0  password
local  my_db                                   reject
host   my_db       192.168.1.12 255.255.255.0  crypt

 


in your pg_hba.conf.



   


-- 
--//--\\--
Eckhard Hoeffner
e-hoeffner@xxxxxxxxxxx
Tal 44 
D-80331 München


[Index of Archives]     [Postgresql General]     [Postgresql Admin]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Databases]     [Yosemite Backpacking]     [Postgresql Jobs]

  Powered by Linux