6月1日任务

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

通常网站会有一个目录用于上传文件,但如果某些别有用心的人上传一个php文件,当这个php被执行时就有可能获取一些系统权限,比较危险。所以,我们可以对这个上传的目录里的文件设置禁止解析php,来提高网站安全性。

配置文件

#vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf

<Directory /data/wwwroot/111.com/upload> 
        php_admin_flag engine off
       <FilesMatch (.*)\.php(.*) >    //截图php多了一个点
       Order allow,deny                  //截图deny前面多了个空格
      </FilesMatch>
    </Directory>


不禁止访问php,别人是可以访问源代码的


测试一下禁止解析php

1,先把禁止访问php文件那几行注释掉,然后检查语法重新加载


2.创建upload目录,复制123.php到upload目录下

# mkdir /data/wwwroot/111.com/upload

# cp /data/wwwroot/111.com/123.php /data/wwwroot/111.com/upload/

3.进行访问

# curl -x127.0.0.1:80  111.com/upload/123.php   //可以看到直接显示文件源代码了

网页访问,就直接下载了





加上禁止访问php那几行配置


再进行访问

# curl -x127.0.0.1:80  111.com/upload/123.php


11.29限制user_agent

CC攻击:攻击者借助代理服务器生成指向受害主机的合法请求,实现DDOS和伪装就叫:CC(ChallengeCollapsar)

由于CC攻击一般采用相同的user_agent,比较规律,所以我们可以通过限制user_agent来在一定程度上防止CC攻击。

user_agent可以理解为浏览器标识

1.编辑配置文件,添加以下内容

# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf 


这里使用到了RewriteEngine, OR是或者的意思,这就是就是匹配curl或baidu.com,NC表示忽略大小写

RewriteRule  .*  -  [F]   //就是禁止

2.检查语法,重新加载

3.用curl进行访问,403

4,自定义agent


5.查看访问日志


//-A指定useragent  -x相当于省略了host  -I 进查看状态码  -e指定referer



11.30PHP相关配置

1.查看php配置文件位置

#/usr/local/php/bin/php -i|grep -i "loaded configuration file"  //这个查找的不一定准确



2.比较准确的是用phpinfo来进行查找

# cd /data/wwwroot/111.com/

# vim index.php


打开浏览器进行访问  //可以看到配置文件是none



3.加载php配置文件

没有加载就去复制一份到配置文件目录

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

# cp php.ini-development  /usr/local/php7/etc/php.ini     //复制的开发版的

重新加载一下配置

# /usr/local/apache2.4/bin/apachectl graceful

重新刷新一下网页,可以看到配置文件已经加载了



4.查看及编辑配置文件内容

#   vim /usr/local/php7/etc/php.ini


常用配置

1.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,网页访问index.php


2.data.timezone   // 定义一下时区,不然会有一些警告,这里定位到Aisa/Shanghai



3.日志相关

display_errors        //默认是开启的,错误会显示在浏览器上,暴露目录,这里把它改为Off


重新打开网页,就变成空白了

但是这样,什么错误也看不到也不是我们想要的,所以同时要配置一下错误日志,让错误在日志里显示

log_errors   //定义错误日志是否开启


error_log     //定义错误日志输出路径


这里把它定义到tmp下


error_reporting        //定义日志输出级别


  //默认是all,不太严谨,生产环境一般用E_ALL & ~E_NOTICE

试验是否生成了错误日志



另外,错误日志用户和组是daemon



错误日志,有时可能因为权限问题无法生成,为了保险起见,我们可以创建错误日志,并给予777权限

# touch /tmp/php_errors.log ;chmod 777 /tmp/php_errors.log


再模拟一个错误

#vim /data/wwwroot/111.com/2.php


# curl  -x127.0.0.1:80  111.com/2.php -I


#cat /tmp/php_errors.log


4.open_basedir     设置允许访问的路径

一台服务器上跑了多个站点,其中一个代码有问题被黑了,其他的站点很可能一样被黑掉,而设置open_basedir,一般只能黑掉一个目录,其他的看不到,就能提高很大安全性,这就是它的作用。

即使只有单个站点,设置open_basedir也是有必要的

open_basedir = /data/wwwroot/111.com:/tmp     //这里设置只允许访问111.com和tmp


但是如果有多个站点,在php.ini中这样设定是针对所有站点的,这样不合适,我们可以在虚拟主机配置文件中来做限制

# vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf


配置语句是

php_admin_value open_basedir "/data/wwwroot/111.com:/tmp/"


这样就可以根据虚拟主机来设置目录了,注意tmp目录要有,php在运行中会生成临时文件的。

微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码 微信小程序毕业设计期末大作业项目源码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值