addslashes注入漏洞与mb_addslashes

简介: 由于addslashes无视目标字符串的编码,直接按照二进制字节对字符串添加下划线,会导致很多注入隐患。比如说gbk环境下,有一个宽字符是"\xbf\x27"。

由于addslashes无视目标字符串的编码,直接按照二进制字节对字符串添加下划线,会导致很多注入隐患。

比如说gbk环境下,有一个宽字符是"\xbf\x27"。虽然它不在gbk的编码范围内,但是会把它当成宽字符解析,攻击者可以通过构造url参数等方式传进来。传统的addslashes函数会直接无视掉"\xbf"而直接对后面的"\x27"加下划线,结果变成了"\xbf\x5c\x27"。这样前面两个字节构成宽字符,后面的"\x27"就会单独被解析。

防止注入的话,能够预编译是最好,不能的话应该按照当前的编码,用mb前缀的字符串处理函数手写一个。

比如下面这个:

function mb_addslashes($str, $enco)
{
  $retstr = "";
  $len = mb_strlen($str, $enco);
  for($i = 0; $i < $len; $i++)
  {
    $chr = mb_substr($str, $i, 1, $enco);
    if($chr == "\0")
      $retstr .= "\\0";
    else if($chr == "'")
      $retstr .= "\\'";
    else if($chr == "\"")
      $retstr .= "\\\"";
    else if($chr == "\\")
      $retstr .= "\\\\";
    else 
      $retstr .= $chr;
  }
  return $retstr;
}

相关文章
|
12月前
|
弹性计算 运维 自然语言处理
操作系统智能助手OS Copilot新功能测评
一文带你了解操作系统智能助手OS Copilot的三大新功能
517 10
|
11月前
|
机器学习/深度学习 计算机视觉
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
250 11
RT-DETR改进策略【卷积层】| CVPR-2023 SCConv 空间和通道重建卷积:即插即用,减少冗余计算并提升特征学习
|
12月前
|
机器学习/深度学习 人工智能 自然语言处理
师资培训|AIGC工具搜集和分析教学反馈-某教育科技集团
近日,TsingtaoAI为某教育科技集团交付AIGC赋能教师教学创新课程《AIGC工具搜集和分析教学反馈》,本师资培训旨在为高校教师提供系统化、实战化的AIGC应用指南,助力教师在教学过程中实现智能化、个性化的转变。本课程通过深入浅出的案例分析、项目实践和实操演练,全面覆盖AIGC工具的收集、应用与反馈分析方法。
571 32
|
机器学习/深度学习 人工智能 供应链
AI技术在医疗领域的应用与未来展望###
本文深入探讨了人工智能(AI)技术在医疗领域的多种应用及其带来的革命性变化,从疾病诊断、治疗方案优化到患者管理等方面进行了详细阐述。通过具体案例和数据分析,展示了AI如何提高医疗服务效率、降低成本并改善患者体验。同时,文章也讨论了AI技术在医疗领域面临的挑战和未来发展趋势,为行业从业者和研究人员提供参考。 ###
|
存储 缓存 运维
缓存技术有哪些优缺点呢
【10月更文挑战第19天】缓存技术有哪些优缺点呢
|
缓存 NoSQL 关系型数据库
秒杀项目实战:遇到的问题及解决方案分享
构建了一个基于Springboot2的秒杀系统。项目利用K8S上的主从结构部署Redis和MySQL,通过Traefik作为网关。RabbitMQ在本地虚拟机的docker环境中,用Prometheus+Grafana监控。设计思路包括隐藏秒杀地址以防止脚本攻击,使用Lua脚本保证库存预扣原子性,但初期版本未处理重复订单校验。为防止MQ故障,将订单信息先保存到Redis,再通过脚本发送到MQ。采用分布式锁防止用户重复下单和缓存击穿问题,使用编程式事务确保库存扣减与订单保存一致性。项目通过JMeter测试,观察性能并分析Redis和RabbitMQ的使用情况。完整代码可在GitHub找到。
393 1
秒杀项目实战:遇到的问题及解决方案分享
|
存储 负载均衡 安全
虚拟桌面和云桌面办公系统
虚拟桌面和云桌面办公系统
|
监控
观察者效应
观察者效应
1080 2
|
新零售 人工智能 大数据
良久团购新零售系统模式开发|成熟技术|案例详情
由此看来,新零售是指利用大数据、人工智能等新兴技术,以满足顾客的需求为目标,将整个零售行业的产业链进行智能化升级。
|
机器学习/深度学习 人工智能 自然语言处理
阿里云 RPA 与人工智能的结合:提升业务效率的新路径
在当今数字化时代,企业和组织都在寻求更高效、更智能的工作方式。阿里云 RPA(机器人流程自动化)与人工智能的结合为实现这一目标提供了新的可能性。本文将探讨阿里云 RPA 与人工智能结合的优势、应用场景以及未来的发展趋势。