您的位置:首页 > 运维架构 > Apache

11月20日学习笔记

2018-11-21 23:32 183 查看

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

11.28 限定某个目录禁止解析php

11.29 限制user_agent

11.30/11.31 PHP相关配置

 

 

限定某个目录禁止解析php

如果我们 有一个目录允许上传呢图片,php有一些危险的函数,如果开放了上传的权限,被上传一些恶意的木马上去,形成网站入侵。

核心配置文件内容,一般静态文件存放的目录下是不允许放php的。

<Directory /data/wwwroot/www.123.com/upload>        

php_admin_flag engine off    

</Directory>  

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

 

 

 

限制user_agent

user_agent可以理解为浏览器标识

 核心配置文件内容  

 <IfModule mod_rewrite.c>        

RewriteEngine on    //之前我们用Rewrite模块是做域名跳转,此处用来限制USER_AGENT.        

  RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]     // %{HTTP_USER_AGENT}  .*curl.*表示条件,NC是、表示忽略大小写,OR是或者的意思。       RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]        

RewriteRule  .*  -  [F]       //F表示forbidden    

</IfModule>

 curl -A "123123" 指定user_agent

 

 

PHP相关配置

1. 用phpinfo()查找配置文件的位置很准确,如查找www.123.com这个目录的配置文件位置,步骤如下:

  # cd /data/wwwroot/www.123.com

# 编辑目录下的一个文件,如 vim index.html

# cd /usr/local/src/php-7.1.6

#cp php.ini-development /usr/local/php7/etc/php.ini

然后刷新apache配置文件 graceful ,浏览器测试,查看phpinfo,此时就能查看到php的配置文件。

 

2. 使用php -i 查看php配置文件的位置

/usr/local/php/bin/php -i|grep -i "loaded configuration file"     //有一些情况用php -i是不准的,因为apache调用的是php这个程序,跟配置文件没有太直接的关系。

vim /usr/local/php/etc/php.ini ,修改一下disable_functions和date.timezone

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=Asia/Shanghai

 

日志相关的配置

display_errors = Off   设置成On会把相关的一些错误信息显示在浏览器上,还会暴露我们的相关目录,设置成Off浏览器错误会变成白页,所以我们还要配置一些错误日志。

配置错误日志

error_log =/tmp/php_errors.log    //把错误日志放到一个目录下,此时我们放到/tmp/目录下。

设置错误日志的级别:定义 error_reporting,如下图所示。

 

php安全相关的配置

open_basedir     //安全参数,设置该参数的目的:比如A网站被黑了,不会牵连到我的B网站。但是会限制该目录下的所有网站,因此需要在虚拟主机配置文件里面执行以下配置 :

php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"        //此处是在虚拟主机配置文件里面操作,针对不同的虚拟主机限制不同的open_basedir,之所以要带上/tmp/是因为默认的临时文件是在/tmp/下。

 

1ff8
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息