LAMP架构(八)限定某个目录禁止解析、 限制user_agent、php相关配置

访问控制-限制某个目录禁止php解析php

通常用于存储静态文件的目录,由于图片等之类的文件是不须要解析PHP的,且静态文件目录也不容许放php文件。 核心配置文件内容shell

<Directory /data/wwwroot/123.com/upload>;
        php_admin_flag engine off
    </Directory>

curl测试时直接返回了php源代码,并未解析apache

输入图片说明

访问控制-user_agent浏览器

user_agent能够理解为浏览器标识 核心配置文件内容安全

<IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]                //NC表示忽略大小写
        RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]        
        RewriteRule  .*  -  [F]                                                                //F即forbidden
    </IfModule>

匹配curl或者baidu.com的进行限制。用了OR链接符,不加就是而且,会报错。php7

curl -A "123123" -A参数指定user_agentcurl

输入图片说明

php相关配置socket

查看php配置文件位置 /usr/local/php/bin/php -i|grep -i "loaded configuration file" //准确的位置能够打开浏览器的phpinfo信息查看。函数

默认php的安装路径下是没有配置文件的,从安装包里拷贝一份测试

cp /usr/local/src/php-7.1.6/php.ini-development /usr/local/php7/etc/php.ini

而后/usr/local/apache2.4/bin/apachectl -t和/usr/local/apache2.4/bin/apachectl graceful使配置文件生效。

输入图片说明

date.timezone=Asia/Shanghai                     //定义php的时区,要定义,注意去掉前面的分号。
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,           //开启错误日志为On
display_errors,     //为On表示错误信息直接显示在浏览器上,改为Off
error_reporting        //定义日志的级别,默认为ALL,生产环境为E_NOTICE
open_basedir           //安全相关的参数,这里不定义,在vhost里头定义,vhost添加以下参数便可。
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"         
//针对不一样的虚拟主机如今他的open_basedir,tmp目录是由于php会先把文件放在该目录,而后在转移。

输入图片说明

输入图片说明

输入图片说明

输入图片说明

输入图片说明

相关文章
相关标签/搜索