您的位置:首页 > 编程语言 > PHP开发

限定某个目录禁止解析php、限制user_agent、php相关配置

2017-12-26 21:30 671 查看
11.28 限定某个目录禁止解析php

11.29 限制user_agent

11.30/11.31 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解析

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
<Directory /data/wwwroot/123.com/upload>
​php_admin_flag engine off #配置这一条即可,但是curl会显示源码不友好,浏览器会直接下载页面
​ <FilesMatch  (.*)\.php(.*)> #加上这个配置会提示403
Order allow,deny
Deny from all
</FilesMatch>
</Directory>


/usr/local/apache2.4/bin/apachectl graceful

curl -e "http://123.com/123.txt" -x127.0.0.1:80 123.com/upload/15.png -I
curl -e "http://123.com/123.txt" -x127.0.0.1:80 123.com/upload/admin.php -I




ata/wwwro

访问控制-user-agent

{User-Agent}用户代理(怎么获得网址内容,是浏览器还是curl)

•user_agent可以理解为浏览器标识

• 核心配置文件内容

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR] #NC忽略大小写,OR是或者下面的条件
RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]
RewriteRule  .*  -  [F]   #这里F是直接403forbidden
</IfModule>


curl -A “123123” 指定user_agent

tail /usr/local/apache2.4/logs/123.com-access_20171225.log



curl -A “aminglinux aminglinux” -x127.0.0.1:80 ‘http://123.com/admin.php’ -I



<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR] #NC忽略大小写,OR是或者下面的条件
RewriteCond %{HTTP_USER_AGENT}  .*aminglinux.* [NC]
RewriteRule  .*  -  [F]   #这里F是直接403forbidden
</IfModule>


curl -A “aminglinux aminglinux” -x127.0.0.1:80 ‘http://123.com/admin.php’ -I



• 查看php配置文件位置

• /usr/local/php/bin/php -i|grep -i “loaded configuration file” #这个有时候会不准



phpinfo显示配置文件路径,如果没有加载就要去源码包拷贝配置文件到php的etc下面去

ls /usr/local/src/php-7.1.10/php.ini-development /usr/local/php7/etc/php.ini



• date.timezone #如果不定义有时候会有告警信息

date.timezone = Asia/Shanghai

#禁用php函数

vim /usr/local/php7/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






• error_log, log_errors, display_errors, error_reporting

#修改这个参数就不会显示任何信息了

display_errors = off



#错误日志是否开启,

log_errors = On #on就是打开

error_log =/tmp/ php_errors.log #定义错误日志路径

error_reporting #日志级别

error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT



#同一服务器中多个站点。用这个可以隔离,防止渗透

• open_basedir

open_basedir = /data/wwwroot/123.com:/tmp/

#php.ini中不好做到。但是虚拟主机中可以限制不同的open_basedir

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

• php_admin_value open_basedir “/data/wwwroot/111.com:/tmp/”
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐