• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • Red Hat 8.0上有運行PHP權限的Apache的虛擬主機安全問題。

    發表于:2007-05-25來源:作者:點擊數: 標簽:
    我先簡單說說我的配置過程一下: A、我在/etc/hosts文件中添加了如下內容 127.0.0.1www.aaa.com 127.0.0.1www.bbb.com B、我在/var/www/html/下建了www.aaa.com及www.bbb.com兩個目錄,在www.aaa.com下有個 PHP 文件(1.php)內容如下: ?php include"../w

    我先簡單說說我的配置過程一下: 

    A、我在 /etc/hosts 文件中添加了如下內容 
    127.0.0.1 www.aaa.com 
    127.0.0.1 www.bbb.com 

    B、我在 /var/www/html/ 下建了 www.aaa.com 及 www.bbb.com 兩個目錄,在 www.aaa.com 下有個PHP文件(1.php)內容如下: 
    <?php 
    include "../www.bbb.com/2.php"; 
    echo $file; 
    ?> 
    在 www.bbb.com 下有個2.php文件,內容如下: 
    <?php 
    $file="2.php"; 
    ?> 

    C、apache的httpd.conf的虛擬主機設置如下


    <VirtualHost 127.0.0.1>
    ServerAdmin sc@lin.net.cn
    DocumentRoot /var/www/html/www.aaa.com/
    ServerName www.aaa.com 
    </VirtualHost>

    <VirtualHost 127.0.0.1>
    ServerAdmin sc@lin.net.cn
    DocumentRoot /var/www/html/www.bbb.com/
    ServerName www.bbb.com 
    </VirtualHost> 

    重啟動apache后,在IE中看http://www.aaa.com/1.php的輸出結果是:2.php 
    這說明 www.aaa.com 虛擬主機中的文件已經讀取了它目錄以外的文件。如何防止這種情況的出現? 

    我試圖將 
    <VirtualHost 127.0.0.1> 
    ServerAdmin sc@lin.net.cn 
    DocumentRoot /var/www/html/www.aaa.com/
    ServerName www.aaa.com 
    </VirtualHost> 
    改為 
    <VirtualHost 127.0.0.1> 
    ServerAdmin sc@lin.net.cn 
    DocumentRoot /var/www/html/www.aaa.com/
    ServerName www.aaa.com 
    <Directory "/var/www/html/www.aaa.com/"> 
    php_admin_value safe_mode 0 
    php_admin_value open_basedir "/" 
    </Directory> 
    </VirtualHost> 

    可是這樣一改。Apache就報錯,啟動不了。 
    請問我改怎么做?才能達到每個虛擬主機下的PHP文件只能讀取其根文檔下(如 /var/www/html/www.aaa.com/ )的文件,謝謝!



    另:我在win2000上也遇到一樣的情況:http://chinaunix.net/forum/viewtopic.php?t=158615&highlight=myblessu

     haohaoo 回復于:2003-09-18 17:52:22
    2000的就容易解決,需要的話我可以幫你
    linux的我就找不到辦法,不過我代理了套軟件就成功解決了這個問題。
    好象要先實現apache的chroot,再實現單個虛擬主機的chroot

     myblessu 回復于:2003-09-19 08:01:42
    haohaoo :
    你好,你是說要那軟件來解決嗎? 那軟件多少錢呀.

     HonestQiao 回復于:2003-09-19 12:27:15
    apache2+php4.3>可以實現的哦,看看手冊

     myblessu 回復于:2003-09-19 13:15:56
    我的就是 apache 2.0.46 與php 4.3.3 ,我就是看到php.net上將的是

    增加php_admin_value open_basedir "/" 
    可我一加apache就報錯。請各位幫忙。

     myblessu 回復于:2003-09-23 16:11:50
    up

     HonestQiao 回復于:2003-09-23 18:33:04
    報錯可是我不知道你報的身邊么錯?????

     haohaoo 回復于:2003-09-23 23:16:43
    [quote:61ee40d2d0="myblessu"]haohaoo :
    你好,你是說要那軟件來解決嗎? 那軟件多少錢呀.[/quote:61ee40d2d0]     
    2000多,需要的話可以聯系我,我代理
    可惜核心技術我不知道啊,知道的話大家有可以免費了。
    QQ:9032121

     myblessu 回復于:2003-09-24 08:05:58
    haohaoo:主要學學apache,花錢買軟件就算了.

    HonestQiao:

    我不知道apache具體報什么錯,只要我一加上php_admin_value open_basedir "/" 或加上php_admin_value safe_mode 0就起不來了,apache提示說:the requested operation has failed!

     myblessu 回復于:2003-09-24 08:41:58
    在RedHat 8.0下

    apache的報錯信息是:

    Syntax error on line 1042 of /etc/httpd/conf/httpd.conf:
    php_admin_value not allowed here

    怎么辦?不支持php_admin_value呀?

     carolson 回復于:2003-09-25 18:41:08
    up

     carolson 回復于:2003-09-25 19:01:03
    我的問題更嚴重些
    如果上面的虛擬主機不多 則可以 在 定義vhost 的時候定義每一個vhost的
    base

    我的問題是 php
    vhost 只一個url
    比如xxx.xx.com
    則 xxx.xx.com/~user1
    如何無法訪問 xxx.xx.com/~user2 呢?

    謝謝。

     freeand 回復于:2003-09-26 10:34:58
    幫你T

     myblessu 回復于:2003-11-04 15:04:18
    終于明白了,查看php文檔后,原來是由于安裝方式的不同引起的.

    原來我的php是CGI方式安裝的,所以下面的設置錯誤.

    <VirtualHost 127.0.0.1>
        ServerAdmin sc@lin.net.cn
        DocumentRoot /var/www/html/www.aaa.com/
        ServerName www.aaa.com
        <Directory "/var/www/html/www.aaa.com/">
    php_admin_value open_basedir /var/www/html/www.aaa.com/
        </Directory>
    </VirtualHost>

    當我把php該為模塊方式安裝時,上面的配置就成功了.而且我想到達的安全目的也到達了.

     geel 回復于:2003-11-04 15:30:59
    ???

    open_basedir 記得在php.ini中也可以設置。

    如果按照cgi方式,perfork的話用apache傳統的suexec也可以

    carolson  的問題;
    可以不用vhost,在servername里面(等于win2k的默認站點)

     myblessu 回復于:2003-11-04 15:58:57
    open_basedir 是在php.ini中也有這么一項,但如果在php.ini中設置是所有主機都同樣一個設置,同樣可以打開同一個目錄,所以我要放在虛擬主機中去設置.

     geel 回復于:2003-11-05 09:00:07
    是啊,這個問題我一直在想,不過沒去做,今天你的帖子我收藏了,哈哈

    不過如果還要支持perl cgi,怎么設置權限呢

     木目子 回復于:2003-11-06 15:56:25
    <VirtualHost www.aaa.com> 
    ServerAdmin sc@lin.net.cn 
    DocumentRoot /var/www/html/www.aaa.com/ 
    ServerName www.aaa.com 
    </VirtualHost> 

    <VirtualHost www.bbb.com> 
    ServerAdmin sc@lin.net.cn 
    DocumentRoot /var/www/html/www.bbb.com/ 
    ServerName www.bbb.com 
    </VirtualHost> 
    試試,應該沒有問題的!

     geel 回復于:2003-11-06 16:16:15
    這樣如果允許bbb.com execCGI的話還是可以讀取到../html/www.aaa.com的東西

     jhsea3do 回復于:2003-11-08 00:26:01
    我有些inc文件就是放在外面的阿....

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>