9.PHP相關配置
阿新 • • 發佈:2018-03-12
PHP相關配置[toc]
PHP相關配置
PHP相關配置
1.尋找PHP相關配置文件
每次再次開啟虛擬機,要註意當前所在文件目錄的位置
[root@xavi ~]# cd /data/wwwroot/xavi.com
[root@xavi xavi.com]# ls
123.php admin index.php upload xavi.jpg xavi.txt
編輯當前位置的index.php文件
[root@xavi xavi.com]# !vim
vim index.php
<?php
phpinfo();
打開網頁,查看其加載情況 Loaded Configuration File沒有加載
2.查找php配置文件
[root@xavi php-7.1.6]# /usr/local/php7/bin/php -i | grep -i ‘loaded configuration file‘
Loaded Configuration File => /usr/local/php7/etc/php.ini
3.復制配置文件,在gracful刷新配置文件後,刷新index.php
[root@xavi xavi.com]# cd /usr/local/src/php-7.1.6/ [root@xavi php-7.1.6]# cp php.ini-development /usr/local/php7/etc/php.ini [root@xavi php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
4.編輯配置文件:/usr/local/php7/etc/php.ini
[root@xavi php-7.1.6]# vim /usr/local/php7/etc/php.ini
在vim內搜索 /disable_functions
如下就是通常被認為比較危險的函數:
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
其中第一個eval函數就是上個文章提到的木馬文件所調用的函數。如果禁掉了這個函數,就算可以上傳php文件也是不能執行的。
關於phpinfo可以展現所有關於php的信息,如果被黑客看到就不堪設想了。所以好多企業為了更加安全會把phpinfo也會禁止掉!
- 但是當我們禁掉PHP的時候,當你訪問phpinfo他也還是會在瀏覽器中顯示錯誤信息:
- 本次測試我並未得到該結果,而是正常顯示phpinfo界面
找到錯誤原因:phpinfo前面未被識別,也無報錯,因為自己把所有函數自行分段了,而不是整體復制
黑客比較嚴謹,也還是會通過此路徑找到相關配置,所以為了防止在瀏覽器中顯示,我們也可以把這些信息全部關掉!
5.在php.ini中定義time.zone如果不定義,會出報警信息
[root@xavi php-7.1.6]# vim /usr/local/php7/etc/php.ini
找到time.zone
6.在瀏覽器中顯示,我們也可以把這些信息全部關掉!
6.1搜素 /display ,改為off即可。
display_errors = Off
6.2然後再去配置一下log_error
log_errors = On
6.3 然後再次去定義錯誤日誌的路徑:
搜索 /error_log, 修改到/tmp下。
error_log = /tmp/php_errors.log
6.4 為了更加直觀的看到日誌內容,我們需要設置日誌的等級:
搜索 /error_reporting
error_reporting = E_ALL & ~E_NOTICE
在生產環境中,最常用的就是這個!有時候出現notice並不是出錯
沒有權限訪問
7.測試
[root@xavi php-7.1.6]# curl -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 09:34:23 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@xavi php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 09:36:57 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
[root@xavi php-7.1.6]# touch /tmp/php_errors.log
[root@xavi php-7.1.6]# chmod 777 /tmp/php_errors.log
[root@xavi php-7.1.6]# ls -l /tmp/php_errors.log
-rwxrwxrwx 1 root root 0 3月 11 17:52 /tmp/php_errors.log
[root@xavi php-7.1.6]# cat /tmp/php_errors.log
[root@xavi php-7.1.6]# /usr/local/apache2.4/bin/apachectl graceful
[root@xavi php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/index.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 09:57:50 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
[root@xavi php-7.1.6]# vim /data/wwwroot/xavi.com/2.php
[root@xavi php-7.1.6]# curl -A "xavi" -x127.0.0.1:80 http://xavi.com/2.php -I
HTTP/1.1 200 OK
Date: Sun, 11 Mar 2018 10:00:42 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
X-Powered-By: PHP/7.1.6
Content-Type: text/html; charset=UTF-8
- 沒有500錯誤代碼??????
[root@xavi php-7.1.6]# curl -x 192.168.72.130:80 xavi.com/2.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 10:15:00 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@xavi php-7.1.6]# curl -x 192.168.72.130:80 xavi.com/index.php -I
HTTP/1.1 403 Forbidden
Date: Sun, 11 Mar 2018 10:15:23 GMT
Server: Apache/2.4.29 (Unix) PHP/7.1.6
Content-Type: text/html; charset=iso-8859-1
[root@xavi php-7.1.6]# !cat
cat /tmp/php_errors.log
[11-Mar-2018 18:14:46 Asia/shanghai] PHP Parse error: syntax error, unexpected end of file in /data/wwwroot/xavi.com/2.php on line 4
10.31 PHP相關配置 open_basedir
如果有一臺服務器跑了很多個站點,其中就有一個站的程序寫的很爛,漏洞百出,被黑客所劫持,只要一臺被劫持,其它的服務器也就很快被搞定。為了防止這樣的事情發生,如何搞定呢?
針對不同的虛擬主機限定不同的open_basedir
[root@xavi php-7.1.6]# vim /usr/local/php/etc/php.ini
open_basedir = /usr/local/wwwroot/xavi.com:/tmp //多個目錄用:隔開,這個說明PHP限制在這兩個目錄活動
一致沒有500報錯
[root@xavi php-7.1.6]# cat /tmp/php_errors.log
[11-Mar-2018 18:14:46 Asia/shanghai] PHP Parse error: syntax error, unexpected end of file in /data/wwwroot/xavi.com/2.php on line 4
1.針對不同的虛擬主機限定不同的open_basedir
1.1 打開配置文件:vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
1.2 增加如下配置:
php_admin_value open_basedir "/data/wwwroot/xavi.com/:/tmp/"
為什麽要添加/tmp呢?
是因為/tmp下有咱們的錯誤日誌,並且有些論壇允許上傳圖片也都是先上傳到tmp目錄下,然後再次轉到upload下!
9.PHP相關配置