限定某个目录禁止解析php,限制user_agent,php相关配置
2017-12-27 00:00
821 查看
限定某个目录禁止解析php
核心配置文件内容<Directory /data/wwwroot/www.123.com/upload>
php_admin_flag engine off
</Directory>
curl测试时直接返回了php源代码,并未解析
假如有一个目录是允许上传图片的,可能让黑客上传了一个PHP文件,由于网站可以执行PHP文件,一旦执行,就会让黑客拿到服务器权限,为了避免这种情况发生,我们需要把能上传文件的目录禁止解析PHP。
打开虚拟主机配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,添加内容如下(红框中),保存退出
php_admin_flag engine off ,禁止解析php
检查配置文件语法正误,并重新配置文件
创建一个upload,新建php文件
curl测试,出现403
那么先打开虚拟主机配置文件,注释掉FilesMatch那几行
检查配置文件语法正误,并重新配置文件
这时访问php,发现无法解析,只是显示源代码
访问111.com/upload/123.php,会直接下载,也没办法解析
如果这时候再打开虚拟主机配置文件,取消FilesMatch那几行注释,检查配置文件语法正误,并重新配置文件,然后再访问111.com/upload/123.php
禁止php解析,就是为了提高服务器安全性,一般静态文件存放的目录是不允许解析php的
限制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>
curl -A "123123" 指定user_agent
有时候,网站会受到一种黑客攻击叫 cc 攻击,cc攻击就是利用很多用户的电脑同时访问同一个站点,当访问量或者频率达到一定层次,会耗尽服务器资源,从而使之不能正常提供服务。由于其中这些恶意请求的user_agent相同或者相似,那我们就可以通过限制user_agent发挥防攻击的作用,减轻服务器压力。
打开虚拟主机配置文件vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf,添加内容如下(红框中),保存退出
NC表示忽略大小写,OR是两条命令的连接符,表示或者的意思,不加OR就表示并且。
检查配置文件语法正误,并重新配置文件
curl访问测试,出现403
查看访问日志
自定义user_agent
查看访问日志
curl -A 指定user_agent,curl -e指定referer,curl -I查看状态码,curl -x相当于省略了hosts
php相关配置
查看php配置文件位置/usr/local/php/bin/php -i|grep -i "loaded configuration file"
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
error_log, log_errors, display_errors, error_reporting
open_basedir
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"
在111.com的根目录下创建phpinfo
切换到源码包路径,复制文件
找到配置文件的路径
打开并配置PHP文件,vim /usr/local/php/etc/php.ini
搜索/disable_functions,禁掉一些的函数,保存退出
重新加载配置文件/usr/local/apache2.4/bin/apachectl graceful
再去浏览器访问111.com/index.php,会发现phpinfo无法打开
打开配置文件,搜索/timezone,定义date.timezone时区,如果不定义,有时候会有一些告警信息,注意删掉date前面的分号
搜索display_errors,将On改成Off,这样就不会把错误的信息直接显示在浏览器上
检查配置文件语法正误,并重新加载配置文件
在浏览器中访问111.com/index.php,会看到的是白页
然后配置错误日志,搜索/log_errors,看到log_errors=On,表示错误日志已开启
搜索/error_log,定义错误日志文件路径error_log= /tmp/php_errors.log,error_log前的分号去掉
搜索/error_reporting,定义日志的级别,默认为ALL;在生产环境中,notices出现的频率很高。
检查配置文件语法正误,并重新加载配置文件
再访问一下,会看到生成了php_errors.log,并且属主属组是daemon
查看进程
再做个测试
curl访问2.php,显示的的状态码为500
查看错误日志
安全相关的参数open_basedir
打开php配置文件 vim /usr/local/php/etc/php.ini
搜索/open_basedir,去掉分号,修改成open_basedir = /data/wwwroot/111.com:/tmp
重新加载配置文件,然后访问2.php,就不会报错了
针对不同的虚拟主机去限制不同的open_basedir,打开虚拟主机配置文件
检查配置文件语法正误,并重新加载配置文件
这样就可以了,针对不同的虚拟主机去限制不同的open_basedir
扩展
apache rewrite教程apache rewrite 出现死循环
php错误日志级别参考
php开启短标签
php.ini详解
相关文章推荐
- 限定某个目录禁止解析php、限制user_agent和PHP相关配置
- 11.28-31 限定某个目录禁止解析php, 限制user_agent, php相关配置
- 限定某个目录禁止解析php、限制user_agent、php相关配置(php日志)
- 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置
- 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置
- 限定某个目录禁止解析php 限制user_agent php相关配置
- LAMP架构(八)限定某个目录禁止解析、 限制user_agent、php相关配置
- 11.28 限定某个目录禁止解析php;11.29 限制user_agent;11.30,11.31 php相关配置(上下)
- 限定某个目录禁止解析php、限制user_agent、php相关配置
- 限定某个目录禁止解析php、限制user_agent、php相关配置
- 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 php相关配置
- 限定某个目录禁止解析php,限制user_agent,php相关配置
- 十一周第二次课 2017.12.26 限定某个目录禁止解析php、限制user_agent、php相关配置
- 【LAMP环境搭建】限定某个目录禁止解析php、限制user_agent和php相关配置
- 限定某个目录禁止解析php、限制user_agent、PHP相关配置
- 10-4 11 禁止某个目录解析PHP 限制user_agent php相关配置
- linux的apache2.4限定某个目录禁止解析PHP及user_agent与PHP相关配置
- 禁止解析PHP、限制user_agent、php相关配置
- 禁止解析PHP、限制user_agent、php相关配置