11.28 限定某個目錄禁止解析php;11.29 限制user_agent;11.30-11.31
apache開啟壓縮 :
http://ask.apelearn.com/question/5528
apache2.2到2.4配置文件變更 :
http://ask.apelearn.com/question/7292
apache options參數 :
http://ask.apelearn.com/question/1051
apache禁止trace或track防止xss :
http://ask.apelearn.com/question/1045
apache 配置https 支持ssl :
http://ask.apelearn.com/question/1029
11.28 限定某個目錄禁止解析php
訪問控制 – 禁止php解析
1. 編輯虛擬主機配置文件,針對網站下的目錄設定禁止解析php文件!:
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
#<FilesMatch (.*)\.php(.*)>
#Order allow,deny
#Deny from all
#</FilesMatch>
</Directory>
2. 創建目錄 :
[root@hao-01 ~]# mkdir /data/wwwroot/111.com/upload
3. 創建編輯123.php到upload目錄下 :
[root@hao-01 ~]# vim /data/wwwroot/111.com/upload/123.php
插入內容:
<?php
echo "123.php";
4. 檢測虛擬機配置文件是否有錯誤 :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
3. 啟動apache2.4/httpd :
[root@hao-01 apache2.4]# /usr/local/apache2.4/bin/apachectl start
4. 重新加載配置文件(不會重啟服務):
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
5. curl訪問111.com網站下的限定禁止解析目錄upload下文件:
php解析不了,會顯示源代碼!
(源代碼顯示出不安全,建議把註釋掉的打開,直接403!)
[root@hao-02 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php'
6. 編輯虛擬主機配置文件 :
打開刪除FilesMatch (.*)\.php(.*)這個配置所有行前的註釋符#
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
<FilesMatch (.*)\.php(.*)>
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
7. curl訪問111.com網站下的限定禁止解析目錄upload下文件 :
php解析不了,會顯示源代碼!
(源代碼顯示出不安全,建議把註釋掉的打開,直接403!)
[root@hao-02 ~]# curl -x127.0.0.1:80 'http://111.com/upload/123.php
11.29 限制user_agent
? user_agent可以理解為瀏覽器標識
? 核心配置文件內容
1. 編輯虛擬主機配置文件:
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
插入內容:
(curl 和baidu.com是被匹配篩選的關鍵詞,NC是區分大小寫,OR是或者)
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
</IfModule>
2. 檢測虛擬機配置文件是否有錯誤 :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl -t
3. 重新加載配置文件(不會重啟服務) :
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
4. curl 測試 :
[root@hao-01 ~]# curl -x127.0.0.1:80 'http://111.com/123.php'
5. 查看訪問日誌:
[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20170708.log
6. curl -A 指定user_agent(hao hao 就是模擬指定的)
[root@hao-01 ~]# curl -A "hao hao" -x127.0.0.1:80 'http://111.com/123.php' -I
7. 查看訪問日誌:
[root@hao-01 ~]# tail /usr/local/apache2.4/logs/111.com-access_20170708.log
11.30 PHP相關配置-11.31 PHP相關配置(上下)
1. 在111網站根目錄下,創建index.php,內容如下:
[root@hao-01 ~]# vi /data/wwwroot/111.com/index.php
插入內容:
<?php
phpinfo();
2. 拷貝 :
[root@hao-01 ~]# cp /usr/local/src/php-5.6.30/php.ini-development /usr/local/php/etc/php.ini
3. 重新加載配置文件(不會重啟服務)
[root@hao-01 ~]# /usr/local/apache2.4/bin/apachectl graceful
4. 在Windows遊覽器中,訪問111網站的index.php,就可以看到php.ini所在路徑了,可以在php.ini這個文件中做些配置 :
5. 編輯 php.ini,安全選項,禁掉這些參數 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
插入內容:
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
6.編輯php.ini,安全選項,避免報警:
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改內容:
date.timezone = Asia/Chongqing
7. 編輯php.ini,安全選項,有錯誤不會在遊覽器中顯示出 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改內容:
display_errors = Off
8. 編輯php.ini,配置錯誤日誌路徑 :
[root@hao-01 ~]# vim /usr/local/php/etc/php.ini
修改指定錯誤日誌路徑:
error_log = /tmp/php_errors.log
9. 創建錯誤日誌 :
[root@hao-01 ~]# touch /tmp/php_errors.log
10. 給錯誤日誌增加777權限,這樣有錯誤就可以正常寫入 :
[root@hao-01 ~]# chmod 777 /tmp/php_errors.log
11. 編輯虛擬主機配置文件,限制主機的open_basedir :
[root@hao-01 ~]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
對應的虛擬主機,添加對應的網站來限制 :
php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp/"
11.28 限定某個目錄禁止解析php;11.29 限制user_agent;11.30-11.31