扩展:
apache开启压缩 http://www.aminglinux.com/bbs/thread-5528-1-1.html
apache2.2到2.4配置文件变更 http://www.aminglinux.com/bbs/thread-7292-1-1.html
apache options参数 http://www.aminglinux.com/bbs/thread-1051-1-1.html
apache禁止trace或track防止xss http://www.aminglinux.com/bbs/thread-1045-1-1.html
apache 配置https 支持ssl http://www.aminglinux.com/bbs/thread-1029-1-1.html
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. 拷贝:
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,安全选项,有错误不会在游览器中显示出:
修改内容:
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/"