博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
限定某个目录禁止解析php 限制user_agent php相关配置
阅读量:7128 次
发布时间:2019-06-28

本文共 3127 字,大约阅读时间需要 10 分钟。

一、限定某个目录禁止解析php

限定某个目录禁止解析php 限制user_agent php相关配置
通过禁止php解析图片目录,来限制网站被×××恶意找到后门获取到数据库权限
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
限定某个目录禁止解析php 限制user_agent php相关配置
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful
#mkdir upload //在/data/wwwroot/111.com下创建一个upload目录
#cp 123.php upload/
#curl -x127.0.0.1:80 '' -I //测试
限定某个目录禁止解析php 限制user_agent php相关配置
二、限制user_agent
限定某个目录禁止解析php 限制user_agent php相关配置
CC×××的原理是:×××者借助代理服务器(肉机)生成指向受害主机的合法请求,实现DDOS和伪装
通过日志分析,遇到user_agent很规律的请求基本可以判定它是CC×××
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
限定某个目录禁止解析php 限制user_agent php相关配置
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful
#curl -A "aminglinux aminglinux" -x192.168.8.131:80 #'' -I //-A指定user_agent,-e指定rewrite,必须以"

三、PHP相关配置

限定某个目录禁止解析php 限制user_agent php相关配置
通过浏览器访问,用phpinfo()函数查看网站phpinfo函数文件,如果没有加载php.ini,从源码包复制一个到/usr/local/php/etc/
cp /usr/local/src/php-5.6.32/php.ini-development /usr/local/php/etc/php.ini
限定某个目录禁止解析php 限制user_agent php相关配置
disable_functions 是安全函数
#vim /usr/local/php/etc/php.ini //修改配置文件,在disable_functions =后面加如下安全函数,有些企业生产环境上把phpinfo也加入到安全函数,增加安全性
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
#/usr/local/apache2.4/bin/apachectl graceful //修改完成之后重新加载下文件
在浏览器中刷新http://111.com/index.php网页,出现如下页面提示:phpinfo被禁掉
限定某个目录禁止解析php 限制user_agent php相关配置
#vim /usr/local/php/etc/php.ini //date.timezone定义为亚洲上海或者重庆
date.timezone = Asia/Shanghai
把display_errors = On 修改为 display_errors = Off ,改为Off后访问http://111.com/index.php将不会输出错误信息,直接变为白页
如果把错误信息输出禁用,需要把错误日志开启,log_errors = On,修改错误日志路径error_log = /tmp/php_errors.log
error_reporting定义错误日志记录级别 ,默认error_reporting = E_ALL,生产环境上一般使用 Show all errors, except for notices
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful
#ls /tmp //可以查看下/tmp下有没有生成php_errors.log文件
#ls -l /tmp/php_errors.log
rw-r--r-- 1 daemon daemon 145 Jun 5 07:34 /tmp/php_errors.log //可以看到它的属组是daemon
#ps aux |grep httpd
限定某个目录禁止解析php 限制user_agent php相关配置
daemon其实是httpd的进程,那么这个错误日志是以这个进程的身份生成的
如果定义了一个错误日志,但是这个错误日志始终无法生成,就需要检查定义的错误路径有没有写的权限
#cat /tmp/php_errors.log //查看错误日志内容
[05-Jun-2018 07:34:06 Asia/Shanghai] PHP Warning: phpinfo() has been disabled for security reasons in /data/wwwroot/111.com/index.php on line 2
#vim /data/wwwroot/111.com/2.php //创建一个2.php
curl -A "a" -x127.0.0.1:80 -I //报500错误
#cat /tmp/php_errors.log //提示Parse error错误
[05-Jun-2018 08:14:40 Asia/Shanghai] PHP Parse error: syntax error, unexpected end of file in /data/wwwroot/111.com/2.php on line 4

多站点安全配置:

需求:一个服务器跑多个站点,A站点代码可能有问题,有漏洞,结果A站点被黑了,要想使其他站点目录不受影响,可以增加open_basedir
#vim /usr/local/php/etc/php.ini
open_basedir=/data/wwwroot/111.com:/tmp //如果是在php.ini下定义,只能定义一个open_basedir,是针对所有站点和临时目录
#/usr/local/apache2.4/bin/apachectl graceful
#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf // 对每个站点单独限定相互隔离,修改httpd-vhosts.conf 配置文件
php_admin_value open_basedir "/data/wwwroot/111.com:/tmp" //在111.com站点配置文件中添加
php_admin_value open_basedir "/data/wwwroot/abc.com:/tmp" //在abc.com站点配置文件中添加
#/usr/local/apache2.4/bin/apachectl -t
#/usr/local/apache2.4/bin/apachectl graceful

转载于:https://blog.51cto.com/13669226/2124993

你可能感兴趣的文章
漂亮的颜色
查看>>
Android Volley 源码解析(二),探究缓存机制
查看>>
Go源码剖析:内置类型
查看>>
102. Binary Tree Level Order Traversal
查看>>
SAP云平台对Kubernetes的支持
查看>>
原来实现GCP用客户端登录这么简单啊
查看>>
PAT A1057 分块思想
查看>>
PAT A1007 动态规划
查看>>
VUE父子组件传递数据
查看>>
前端知识点——图片
查看>>
别人家的程序员是如何使用 Java 进行 Web 抓取的?
查看>>
95%的技术面试必考的JVM知识点都在这,另附加分思路!
查看>>
日期类问题
查看>>
区块链入门之基础知识
查看>>
mysql锁(Innodb)
查看>>
小程序开发之影分身术
查看>>
磨刀霍霍:爬爬爬爬爬爬虫爬起来~
查看>>
RxJava中的Observable,多Subscribers
查看>>
I/O模型和Java NIO源码分析
查看>>
第二天-《企业应用架构模式》-组织领域逻辑
查看>>