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

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

 vim /usr/local/apache2.4/conf/extra/httpd-vhosts.conf
  • 修改核心配置文件内容
    <Directory /data/wwwroot/123.com/upload>
        php_admin_flag engine off
    </Directory>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

禁止解析upload目录下的php文件

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

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源代码,并未解析

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

或者

   <Directory /data/wwwroot/123.com/upload>
      <FilesMatch(.*)\.php(.*)>
       Order allow,deny
       Deny from all
      </FilesMatch>
   </Directory>
/usr/local/apache2.4/bin/apachectl -t
/usr/local/apache2.4/bin/apachectl graceful

禁止访问upload目录下的php文件;

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

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

  • 测试显示403禁止访问;

    二、限制user_agent

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

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

核心配置文件内容

   <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteCond %{HTTP_USER_AGENT}  .*curl.* [NC,OR]
        RewriteCond %{HTTP_USER_AGENT}  .*baidu.com.* [NC]
        RewriteRule  .*  -  [F]
    </IfModule>
  • NC忽略大小写, [F] forbidden OR 禁止curl或者baidu.com.两个user_agent
    44.限定某个目录禁止解析php、限制user_agent、php相关配置
  • 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

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

  • 本机默认user_agent和百度都禁止访问,随机指定一个则可以访问

    三、 php相关配置

查看php配置文件位置

 vim /data/wwwroot/123.com/123.php
<?php
phpinfo();
?>

通过浏览器查看配置文件信息

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

如果配置文件不存在就要去模板目录下复制一份;

  • 修改php配置文件

    vim /usr/local/php/etc/php.ini  
  • date.timezone --定义时区
    ate timezone=Asia/Shanghai

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

  • 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

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

  • error_log --日志路径
  • log_errors --是否开启日志
  • display_errors --是否前台显示错误信息(如:将phpinfo加入禁用函数名单,访问一个phpinfo的php文件,如果此选项开启,那么会显示错误信息,如果此选项关闭,则什么也不显示)
  • error_reporting --定义日志级别 通常为 E_ALL & ~E_NOTICE

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

  • 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***跨站

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

转载于:https://blog.51cto.com/13569831/2105161

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值