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

     解决方案:

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
本部分主要从代码层和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下面则用冒号隔开。

 

posted @   云龙笔记  阅读(334)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示