php相關
阿新 • • 發佈:2017-12-27
phpphp_admin_value open_basedir "/data/wwwroot/11php_admin_value open_basedir "/da
1.禁止解析php
在虛擬主機配置文件/usr/local/apache2.4/conf/extra/httpd-vhosts.conf中加入如下內容:
<Directory /data/wwwroot/111.com/upload> php_admin_flag engine off </Directory>
該配置僅用了php的解析引擎,導致php無法被解析。保存配置後重啟apache
在更改配之前curl的結果如下,php得到正常解析:
[root@test_01 htdocs]# curl -x127.0.0.1:80 'http://111.com/upload/123.php' 123.php authorization passed
更改配置之後則是直接輸出php腳本文件中的源碼
[root@test_01 htdocs]# curl -x127.0.0.1:80 'http://111.com/upload/123.php' <?php echo "123.php authorization passed"; ?>
2.禁用部分php函數
在配置文件/usr/local/php/etc/php.ini中加入如下配置:
disable_functions =eval,assert,popen,passthru,escapeshellarg,escapeshellcmd,passthru,exec,system,chroot,scandir,chgrp,chown,escapeshellcmd,escapeshellarg,shell_exec,proc_get_status,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,leak,popepassthru,stream_socket_server,popen,proc_open,proc_close
例如在僅用了phpinfo這個函數後,默認首頁的phpinfo監本無法得到處理,會呈現如下的畫面:
在調整display參數值為off後可以不現實上述的錯誤信息:
; http://php.net/display-errors display_errors = off
3.定義時區
[Date] ; Defines the default timezone used by the date functions ; http://php.net/date.timezone date.timezone =Asia/Shanghai
4.open_basedir
open_basedir可將用戶訪問文件的活動範圍限制在指定的區域,通常是其家目錄的路徑,也可用符號"."來代表當前目錄。註意用open_basedir指定的限制實際上是前綴,而不是目錄名。舉例來說: 若"open_basedir = /dir/user", 那麽目錄 "/dir/user" 和 "/dir/user1"都是可以訪問的。所以如果要將訪問限制在僅為指定的目錄,請用斜線結束路徑名。例如設置成:"open_basedir= /dir/user/" 。
open_basedir也可以同時設置多個目錄, 在Windows中用分號分隔目錄,在Linux中用冒號分隔目錄。當其作用於Apache模塊時,父目錄中的open_basedir路徑自動被繼承。
設置方法:
在虛擬主機配置文件中加入如下配置內容:
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"
ta/wwwroot/111.com:/tmp/"1.com:/tmp/"
php相關