• 限定某个目录禁止解析php 、限制user_agent 、php的配制文件、PHP的动态扩展模块


    1、 限定某个目录禁止解析php(有些目录用户可以上传文件或图片,可能会被恶意者上传其它文件):
    编辑:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf

    加入:

    <Directory /var/www/222/upload>
    php_admin_flag engine off
    </Directory>

     

    建立目录:mkdir /var/www/222/upload -p
    写php文件:echo "<?php phpinfo(); ?>" >/var/www/222/upload/index.php
    检查语法:/usr/local/apache2.4/bin/apachectl -t


    重启、访问、测试:

    而访问upload目录下的其它文件就没有问题:

    配制文件上传目录 php不解析或禁止访问的主要目的,是为了防止恶意者上传相关木马。(注意:静态文件所存放的目录是不允许放php文件的)

     

    2、限制user_agent(可以理解为对浏览器的标识,若遇到cc攻击的时候,可以把攻击者用的浏览器给禁止掉)

    编辑:/usr/local/apache2.4/conf/extra/httpd-vhosts.conf
    加入:

    <IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteCond %{HTTP_USER_AGENT} .*curl.* [NC,OR]   (NC,忽略大小写,OR 是或者与下一个条件是或的意思)
    RewriteCond %{HTTP_USER_AGENT} .*baidu.com.* [NC]
    RewriteRule .* - [F]   (F,forbidden)
    </IfModule>

    检查配制文件、重启、访问测试:

    查看访问日志:

    这样,就可以相对的防止恶意攻击。

     curl  -I 只看状况信息  -A 指定agent   -x (省略host,直接指定目标ip:port)

     
    3、php的配制配制文件
        可以通过php的phpinfo();函数来查看,当然还可以在安装时已经指定的目录下,进行配制,

    找到路径,然后对其进行配制:

     设置时区:date.timezone 
    把它改成:date.timezone =Asia/Shanghai 或:date.timezone =Asia/Chongqing

    然后,再设置一些禁止访问的函数:
    disable_functions=  
    把它改成: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

    访问:

    为了不显示这个,就配制:display_errors
    把它改成:display_errors = Off


    重启apache:/usr/local/apache2.4/bin/apachectl graceful
    然后再次访问:

    设置php.ini文件里的错误日志,由于上面,看不到任何问题(找不到原因),所以,就得查看日志

    把错误日志开启:log_errors = On

    设置错误日志的存放路径:error_log = /tmp/ php_errors.log

    设置错误日志的级别:error_reporting = E_ALL & ~E_DEPRECATED

     然后,重启,访问

    查看日志:

    这里需要注意的,就是日志存放的 目录必需要有访问权限(相关用户)。

     

    设置网站独立的目录或文件活动的权限 open_base = dir_name:  (比如网站被入侵了,可能还会被人家继续渗透,这样子,就只能在这个目录范围内)

     
    但是这样子,就会把所有的dir_name 目录给限定了,所以,意义不大。
    于是就只有改虚拟机的配制文件:/usr/local/apache2.4/conf/extra/httpd-vhost.conf
    在里面加入:
    php_admin_value open_basedir "/var/www/222/:/tmp/"  (防止,被入侵后继续扩展)

    检查配制,重启,访问:

    然后,改正确:

    到此目录可控权限给设置完成。

     

    4、PHP的动态扩展模块:

    例如添加一个phpredis模块:
    下载phpredis:wget -c https://codeload.github.com/phpredis/phpredis/zip/develop
    改名:mv develop phpredis-develop.zip
    解压:unzip phpredis-develop.zip
    进入:cd phpredis-develop/
    运行:/usr/local/php56/bin/phpize     (在目录内支行/usr/local/php56/bin/phpize,目的是为了什么configure文件)
    配制:./configure --with-php-config=/usr/local/php56/bin/php-config
    编译安装:make  && make install
    编辑: vim /usr/local/php56/etc/php.ini
    加入:extension=redis.so
    查看:/usr/local/php56/bin/php -m |grep redis

    到些phpredis 就加载成功。

    其它安装模块,若源码包安装自带得有的话,就在ext下执行相关的安装操作。 

     例如:
    步骤:
    进入php的源码包:cd /home/nfyx/source/php-5.6.36/ext/
    进入需要安装扩展模块的目录:cd  ****/
    运行这条命令:/usr/local/php56/bin/phpize  (生成configure文件)
    配制:./configure --with-php-config=/usr/local/php56/bin/php-config ;echo $?
    编译安装:make && make install
    查看默认路径下是否生成了扩展模块:ls /usr/local/php56/lib/php/extensions/no-debug-zts-20131226/
    修改php.ini文件:vim /usr/local/php56/etc/php.ini
    加入这行:extension=zip.so
    最后进行查看是否加载:/usr/local/php56/bin/php -m |grep zip




    到此源码包里面的扩展模块安装结束。

     

  • 相关阅读:
    js rsa sign使用笔记(加密,解密,签名,验签)
    金额的计算
    常用js方法集合
    sourceTree 的使用
    node-- express()模块
    详细讲解vue.js里的父子组件通信(props和$emit)
    Vue -- vue-cli webpack打包开启Gzip 报错
    es6函数的rest参数和拓展运算符(...)的解析
    js中判断对象数据类型的方法
    vue学习之vue基本功能初探
  • 原文地址:https://www.cnblogs.com/dongjieyuan/p/9215805.html
Copyright © 2020-2023  润新知