11.28-31 限定某个目录禁止解析php, 限制user_agent, php相关配置
2018-08-23 20:27
1041 查看
访问控制 – 禁止php解析.
note某个目录下禁止解析PHP,这个很有作用,我们做网站安全的时候,这个用的很多,比如某些目录可以上传文件,为了避免上传的文件有木马,所以我们禁止这个目录下面的访问解析PHP。1.先禁止解析PHP
<Directory /data/wwwroot/111.com/upload> php_admin_flag engine off </Directory> [root@linux-129 111.com]# curl -x127.0.0.1:80 '111.com/upload/admin.php' <?php echo "FilesMatch控制"; ?>
2.禁止解析php并且拒绝任何人的访问
<Directory /data/wwwroot/111.com/upload> php_admin_flag engine off <filesmatch "(.*)php"> Order deny,allow Deny from all </filesmatch> </Directory> [root@linux-129 111.com]# curl -x127.0.0.1:80 '111.com/upload/admin.php' -I HTTP/1.1 403 Forbidden Date: Mon, 09 Apr 2018 09:27:33 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 Content-Type: text/html; charset=iso-8859-1
访问控制 – user_agent
有时候我们的网站会受到攻击,比如:CC攻击大概原理,攻击的人他通过一些手段,软件或者肉鸡
什么是肉鸡
把别人的服务器黑了,拿到权限去控制它,如果想攻击一个网站的时候,他可以取控制肉鸡去访问这个网站,如果10000个肉鸡去访问网站,一半网站服务器并发不会很高,10000台去访问,他们的带宽,数据库都受不了。
CC攻击有一个非常规矩的特点,他的referer是一样的,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
解释:
OR 或者的意思 NC表示忽略大小写 F forbidden的意思 禁止访问 curl的用法 -x 指定目标IP:目标端口 -u 后面是指定用户和密码 -I 不显示内容,只显示状态码 -e 指定 referer -e ”http://www.123.com“ 必须是http://开头 -A 指定user_agent(浏览器的标示)curl -A “123123”
PHP相关配置
查看php配置文件位置/usr/local/php/bin/php -i|grep -i "loaded configuration file"
• date.timezone=Asia/shanghai 定义时区,不然又是会出现警告信息 •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 \\禁掉一些危险的函数,你如一句话木马用到的函数eval, • display_errors on \\修改成off,防止错误信息显示在页面上。 • log_errors on \\打开错误日志功能 • error_log=/tmp/php_errors.log \\定义错误日志的路径 • error_reporting \\定义错误日志级别,默认是all ,生成环境用第二个 • open_basedir \\安全相关参数,用来限定所有网站的目录,但是一台服务器有很多站点,而它们的目录是同一个,如果用open_dasedir限定在一个目录下面,那这个目录下面的网站都可以来去自如的运行,这个就和我们要的效果不一样了,所以我们可以在虚拟主机配置文件中去配置 • php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/" \\针对不同的虚拟主机限制不同的open_basedir在每一个虚拟主机配置中可以加入这个配置,将它们的站点目录都限制在指定的目录下面;
[root@linux-129 111.com]# ls /tmp/php_errors.log /tmp/php_errors.log [root@linux-129 111.com]# cat !$ cat /tmp/php_errors.log [10-Apr-2018 12:23:08 Asia/shanghai] PHP Warning: phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2 [root@linux-129 111.com]# ls -l !$ ls -l /tmp/php_errors.log -rw-r--r-- 1 daemon daemon 145 4月 10 12:23 /tmp/php_errors.log
它的属主和属组都是daemon
发现这个daemon有apache进程身份去生成的
有时候我们发现定义了错误日志,结果这个错误日志始终没有生成,我们就要去检查这个定义错误日志的目录到底有没有写权限,这个写文件的是apache的启动用户daemon
为了保险起见,我们定了一个errors_log
我们完全可以将这个文件创建好,然后做一个777权限
[root@linux-129 111.com]# vim /data/wwwroot/111.com/2.php \\编辑一个错误的php [root@linux-129 111.com]# curl -x127.0.0.1:80 111.com/2.php -I HTTP/1.0 500 Internal Server Error Date: Tue, 10 Apr 2018 04:35:17 GMT Server: Apache/2.4.29 (Unix) PHP/7.1.6 X-Powered-By: PHP/7.1.6 Connection: close Content-Type: text/html; charset=UTF-8
[root@linux-129 111.com]# cat /tmp/php_errors.log [10-Apr-2018 12:23:08 Asia/shanghai] PHP Warning: phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2 [10-Apr-2018 12:35:17 Asia/shanghai] PHP Parse error: syntax error, unexpected end of file in /data/wwwroot/111.com/2.php on line 4 syntax error:语法错误
[root@linux-129 111.com]# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/" \在每一个虚拟主机配置中可以加入这个配置,将它们的站点目录都限制在指定的目录下面
php_admin_value 这个参数可以在虚拟主机配置文件中添加php.ini里面的一些参数,比如error_log,open_base.dir,error_reporting等等。
这里为什么要设置一个/tmp 呢?
因为默认的临时文件是在/tmp下,如果/tmp被限制了,它连他的临时文件都不能写入进去,它上传的图片会先临时放到/tmp目录下面,然后慢慢放到要放的目录下面去。
相关文章推荐
- 11.28 限定某个目录禁止解析php 11.29 限制user_agent 11.30/11.31 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相关配置
- 11.28 限定某个目录禁止解析php;11.29 限制user_agent;11.30,11.31 php相关配置(上下)
- 限定某个目录禁止解析php,限制user_agent,php相关配置
- LAMP架构(八)限定某个目录禁止解析、 限制user_agent、php相关配置
- 限定某个目录禁止解析php、限制user_agent和PHP相关配置
- 限定某个目录禁止解析php 限制user_agent php相关配置
- 限定某个目录禁止解析php、限制user_agent、php相关配置(php日志)
- 限定某个目录禁止解析php、限制user_agent、php相关配置
- 限定某个目录禁止解析php、限制user_agent、php相关配置
- 限定某个目录禁止解析php,限制user_agent,php相关配置
- 十一周第二次课 2017.12.26 限定某个目录禁止解析php、限制user_agent、php相关配置
- 限定某个目录禁止解析php、限制user_agent、PHP相关配置
- 【LAMP环境搭建】限定某个目录禁止解析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相关配置