十一周二次课(3 月 7 日)
11.28 限定某个目录禁止解析 php
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下内容:
- <Directory /data/wwwroot/123.com/upload>
- php_admin_flag engine off
- </Directory>
重新加载配置文件:
- /usr/local/apache2.4/bin/apachectl -t
- /usr/local/apache2.4/bin/apachectl graceful
11.29 限制 user_agent
配置限制 user_agent 的方法:
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下内容:
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
- RewriteRule .* - [F]
- </IfModule>
以上配置中:
NC: 表示忽略大小写
OR: 表示或者之意, 不写则各行 (条件) 是并且的关系
F: Forbidden 之意, 禁止访问
重新加载配置文件:
- /usr/local/apache2.4/bin/apachectl -t
- /usr/local/apache2.4/bin/apachectl graceful
测试
cure 指定 use-agent
11.30/11.31 php 相关配置
查看 php 配置文件位置
/usr/local/php/bin/php -i|grep -i "loaded configuration file"
通过以上语句查到的有时未必正确, 更可靠的方法是在站点 (比如 123.com) 目录下创建一个包含 phpinfo()函数的 php 页面, 然后在浏览器中访问它, 从而来查看到配置文件位置.
重新加载配置
找到 php 配置文件后, 就可编辑它来设置相关配置了
vi /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
phpinfo 函数禁用
时区配置, 设为 Asia/Shanghai 或者 Asia/Chongqing
date.timezone = Asia/Shanghai
错误信息输出 off, 不把错误信息输出到浏览器中
display-errors=off
错误日志相关配置 -- 便利排障时查看,
错误日志开启
定义错误日志路径
定义错误日志级别, all 所有级别, 生成环境中用 error_reporting = E_ALL & ~E_NOTICE
安全相关参数 open_basedir
这个设置表示允许访问当前目录 (即 PHP 脚本文件所在之目录) 和 / tmp / 目录, 有效防止 php 木马跨站运行
在 Apache 服务器中, 切忌一定要在虚拟主机配置文件中添加以下代码, 否则 PHP 木马脚本可以浏览你服务器上的任意文件, 这意味着你的服务器很快会被攻破
php.ini 中的 open_basedir 参数是对所有的站点都适用的, 假如服务器上只有一个站点, 直接配置 php.ini 中的 open_basedir 参数是能起到作用, 但如果不止一个站点, 因为各个站点目录不同, 而 php.ini 中的 open_basedir 参数只能设置一处,
这时就借助 apache 虚拟主机配置文件来针对特定站点设置 open_basedir 参数.
vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
配置文件增加如下内容:
php_admin_value open_basedir "/data/wwwroot/123.com:/tmp/"
不同主机分别限制
扩展
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
来源: http://www.bubuko.com/infodetail-2519622.html