ck1987 发表于 2018-12-12 08:37:18

44.限定某个目录禁止解析php、限制user_agent、php相关配置

一、限定某个目录禁止解析php、限制user_agent、php相关配置

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


[*]修改核心配置文件内容

php_admin_flag engine off


/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
  禁止解析upload目录下的php文件
http://i2.运维网.com/images/blog/201804/19/fb8cb17cfa19d6ab4bb9bbb5a1bc2369.png;

mkdir /data/wwwroot/123.com/upload/
cp /data/wwwroot/123.com/admin.php    /data/wwwroot/123.com/upload/example.php
curl -x127.0.0.1:80 www.123.com/upload/example.php

[*]curl测试时直接返回了php源代码,并未解析
http://i2.运维网.com/images/blog/201804/19/ad23b689619749350e72cf6c982368f0.png
  或者

   

Order allow,deny
Deny from all


/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

  禁止访问upload目录下的php文件;
http://i2.运维网.com/images/blog/201804/19/7def5142771cbf1e56efcdfcbc68217a.png
http://i2.运维网.com/images/blog/201804/19/a3b512008cdf661d540e239f499f5ab8.png


[*]测试显示403禁止访问;
二、限制user_agent
  user_agent可以理解为浏览器标识
user_agent为什么可以做访问控制呢?
背景:比如网站受到cc***。***的人通过软件或者肉机,想***某个网站的时候,把所有的肉机发动起来,让它们同时访问一个站点。但是cc***往往有一个特征,就是user_agent一致的,访问地址一致。访问速度快,每秒N次

vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  核心配置文件内容

   
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT}.*curl.*
RewriteCond %{HTTP_USER_AGENT}.*baidu.com.*
RewriteRule.*-


[*]NC忽略大小写, forbidden OR 禁止curl或者baidu.com.两个user_agent
http://i2.运维网.com/images/blog/201804/19/c50f9eb69d04cdb15250c08f6cabb3fc.png
[*]  curl -A "123123" 指定user_agent


/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful
curl -x127.0.0.1:80   www.123.com
curl -A '1231' -x127.0.0.1:80 www.123.com
curl -A 'baidu.com' -x127.0.0.1:80   www.123.com

http://i2.运维网.com/images/blog/201804/19/6ba220e81636b76fd1ed3b6e575f00b1.png


[*]本机默认user_agent和百度都禁止访问,随机指定一个则可以访问
三、 php相关配置
  查看php配置文件位置

vim /data/wwwroot/123.com/123.php

  通过浏览器查看配置文件信息
http://i2.运维网.com/images/blog/201804/19/cc126fe3502523c215d93a52568aab46.png
  如果配置文件不存在就要去模板目录下复制一份;


[*]  修改php配置文件

vim /usr/local/php/etc/php.ini
[*]date.timezone --定义时区   
ate timezone=Asia/Shanghai
http://i2.运维网.com/images/blog/201804/19/b3d8c68b40c17115b73ad681506708e6.png


[*]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
http://i2.运维网.com/images/blog/201804/19/488fd280acdb865675e7be008046ec14.png


[*]error_log--日志路径
[*]log_errors --是否开启日志
[*]display_errors--是否前台显示错误信息(如:将phpinfo加入禁用函数名单,访问一个phpinfo的php文件,如果此选项开启,那么会显示错误信息,如果此选项关闭,则什么也不显示)
[*]error_reporting --定义日志级别通常为E_ALL & ~E_NOTICE
http://i2.运维网.com/images/blog/201804/19/c2bf069125915312fcd07acb09ad9ac5.pnghttp://i2.运维网.com/images/blog/201804/19/8d215d4a9b566b4f371795e973c24401.png


[*]open_basedir修改ini是对所有网站生效修改虚拟主机配置才是对单个网站,作用在于限制php访问权限,一般在虚拟主机配置中限制相应账户即可。
[*]

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

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

  设置表示允许访问当前目录(即PHP脚本文件所在之目录)和/tmp/目录,可以防止php***跨站
http://i2.运维网.com/images/blog/201804/19/7a95f3e4123536800367234d4067ef12.png



页: [1]
查看完整版本: 44.限定某个目录禁止解析php、限制user_agent、php相关配置