• php攻击漏洞总结


    1、两字节编码(gbk)都存在宽字节攻击问题[character_set_client=gbk]

              案例:http://www.cnblogs.com/lcamry/articles/5625276.html

              解决方案:mysql_query("SET character_set_connection=gbk, character_set_results=gbk,character_set_client=binary");

              character_set_client=binary 采用二进制传输,可以解决这个问题

    2、两字节编码(gbk)谨慎使用icon,防止攻击

            案例:http://www.cnblogs.com/lcamry/articles/5625276.html

    3、php header函数使用问题

          案例:当使用header函数是如果后面没有die或者exit函数时,程序仍然继续执行。

          解决方案:header函数后面添加程序停止函数[exit,die]

    4、urldecode、rawurldecode宽字节攻击[a.php?id=%2527]

       

        

        

           案例:http://blog.csdn.net/qlxmy/article/details/55252980

          解决方案: 通过urlencode处理过后的变量在通过其他函数过滤一下

          解析:原因是urldecode吧%25转换成%,然后%27就变成'

    5、include、include_once、require、require_once 包含文件时,出现恶意攻击

         案例:https://www.secpulse.com/archives/3206.html

                   http://www.cnblogs.com/mujj/articles/3406740.html

         解决方案:

      

    本部分主要从代码层和Web服务器安全配置两个方面来讲解PHP文件包含漏洞的防范。
    
    1、首先来从代码层来讲,在开发过程中应该尽量避免动态的变量,尤其是用户可以控制的变量。一种保险的做法是采用“白名单”的方式将允许包含的文件列出来,只允许包含白名单中的文件,这样就可以避免任意文件包含的风险
        
    
    2、在Web服务器安全配置方面可以通过设定php.ini中open_basedir的值将允许包含的文件限定在某一特定目录内,这样可以有效的避免利用文件包含漏洞进行的攻击。需要注意的是,open_basedir的值是目录的前缀,因此假设设置如下值:open_basedir=/var/www/test,那么实际上以下目录都是在允许范围内的。
    
    /var/www/test
    
    /var/www/test123
    
    /var/www/testabc
    
    如果要限定一个指定的目录,需要在最后加上”/“,这一点需要特别注意。
    
    open_basedir=/var/www/test/
    
    如果有多个目录,在Windows下目录间用分号隔开,在Linux下面则用冒号隔开。
    
  • 相关阅读:
    leetcode-mid-array-5. Longest Palindromic Substring
    leetcode-mid-array-334 Increasing Triplet Subsequence-NO
    leetcode-mid-array-3 Longest Substring Without Repeating Characters
    leetcode-mid-array-49 Group Anagrams
    leetcode-mid-array-73 set matrix zeros
    leetcode-mid-array-31 three sum-NO
    ANOVA-方差分析和单尾方差分析
    MTLD -词汇复杂度的指标
    shell脚本-2
    from __future__ import
  • 原文地址:https://www.cnblogs.com/ylcms/p/7273914.html
Copyright © 2020-2023  润新知