目录
一、限定某个目录禁止解析php
二、限制user_agent
三、php相关配置
扩展
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
限定某个目录禁止解析php
防止上传恶意木马文件
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
</Directory>
检查,重新加载配置
测试
根本解析不了,直接显示源代码
直接不允许访问Php
<Directory /data/wwwroot/111.com/upload>
php_admin_flag engine off
<FilesMatch (.*)\.php(.*)>
Order allow,deny
Deny from all
</FilesMatch>
</Directory>
限制user_agent
user_agent可以理解为浏览器标识
核心配置文件内容
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
RewriteRule .* - [F]
</IfModule>
OR 表示user agent匹配curl 或者 baidu.com
NC 表示忽略大小写
[F] forbiden
检查,重新加载配置
测试
curl -A 自定义user agent
curl -A "Aminglinux" -x192.168.78.130:80 111.com/123.php
PHP相关配置
查看php配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file" 不准
通过在111.com下创建php.info 查看配置文件
<?php
phpinfo();
?>
通过浏览器访问
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
date.timezone 定义timezone
设置不显示错误信息
error_reporting
定义日志的级别
log_errors 错误日志的位置
open_basedir
安全选项
隔离目录
通过在虚拟主机中定义open_basedir
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"