爆款云主机2核4G限时秒杀,88元/年起!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 618智算钜惠季 爆款云主机2核4G限时秒杀,88元/年起!
  • 免费体验DeepSeek,上天翼云息壤 NEW 新老用户均可免费体验2500万Tokens,限时两周
  • 云上钜惠 HOT 爆款云主机全场特惠,更有万元锦鲤券等你来领!
  • 算力套餐 HOT 让算力触手可及
  • 天翼云脑AOne NEW 连接、保护、办公,All-in-One!
  • 中小企业应用上云专场 产品组合下单即享折上9折起,助力企业快速上云
  • 息壤高校钜惠活动 NEW 天翼云息壤杯高校AI大赛,数款产品享受线上订购超值特惠
  • 天翼云电脑专场 HOT 移动办公新选择,爆款4核8G畅享1年3.5折起,快来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

智算服务

打造统一的产品能力,实现算网调度、训练推理、技术架构、资源管理一体化智算服务
智算云(DeepSeek专区)
科研助手
  • 算力商城
  • 应用商城
  • 开发机
  • 并行计算
算力互联调度平台
  • 应用市场
  • 算力市场
  • 算力调度推荐
一站式智算服务平台
  • 模型广场
  • 体验中心
  • 服务接入
智算一体机
  • 智算一体机
大模型
  • DeepSeek-R1-昇腾版(671B)
  • DeepSeek-R1-英伟达版(671B)
  • DeepSeek-V3-昇腾版(671B)
  • DeepSeek-R1-Distill-Llama-70B
  • DeepSeek-R1-Distill-Qwen-32B
  • Qwen2-72B-Instruct
  • StableDiffusion-V2.1
  • TeleChat-12B

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场创新解决方案
办公协同
  • WPS云文档
  • 安全邮箱
  • EMM手机管家
  • 智能商业平台
财务管理
  • 工资条
  • 税务风控云
企业应用
  • 翼信息化运维服务
  • 翼视频云归档解决方案
工业能源
  • 智慧工厂_生产流程管理解决方案
  • 智慧工地
建站工具
  • SSL证书
  • 新域名服务
网络工具
  • 翼云加速
灾备迁移
  • 云管家2.0
  • 翼备份
资源管理
  • 全栈混合云敏捷版(软件)
  • 全栈混合云敏捷版(一体机)
行业应用
  • 翼电子教室
  • 翼智慧显示一体化解决方案

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
  • 天翼云EasyCoding平台
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼云东升计划
  • 适配中心
  • 东升计划
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
开放能力
  • EasyCoding敏捷开发平台
培训与认证
  • 天翼云学堂
  • 天翼云认证
魔乐社区
  • 魔乐社区

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 建议与反馈
  • 用户体验官
  • 服务保障
  • 客户公告
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 智算服务
  • 产品
  • 解决方案
  • 应用商城
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心

      php安全代码审计和缺陷设计

      首页 知识中心 软件开发 文章详情页

      php安全代码审计和缺陷设计

      2025-01-15 08:09:24 阅读次数:19

      MD5,PHP,函数,字符串,数组,比较

      本文详细解释了PHP中等值比较和全等比较的区别,指出MD5比对漏洞,强调了在处理敏感数据时使用全等比较的重要性,并介绍了intval、strpos、in_array、preg_match和str_replace等函数的用法和注意事项。

      ==和===

      ==(等值比较)
      当使用 == 操作符时,PHP将进行宽松比较,也就是说,只比较两个值的等价性,而不考虑它们的类型。

      如果两个值类型不同,PHP会尝试将它们转换成相同的类型,然后再进行比较。

      例如,字符串 “100” 和整数 100 使用 == 比较时结果为 true,因为字符串 “100” 在比较时会被转换成整数 100。

      if ("100" == 100) { // true,因为值相等
          echo "等值";
      }

      ===(全等比较)
      使用 === 操作符时,PHP将进行严格比较,这意味着它不仅比较两个值的等价性,还会比较它们的类型。

      只有当两个值的类型相同,且值也相等时,比较结果才为 true。

      使用上面的例子,字符串 “100” 和整数 100 使用 === 比较时结果为 false,因为尽管它们的值相等,但类型不同。

      if ("100" === 100) { // false,因为类型不相同
          echo "全等";
      }

      MD5

      PHP中MD5比对漏洞通常与==(等值比较)操作符的使用有关。这种漏洞源于PHP在使用==进行字符串比较时,如果两个比较的字符串都是以0e开头,后跟纯数字,PHP会将它们视为科学记数法表示的数值零。因此,即使两个字符串实际上是不同的,它们也会被认为是相等的。

      漏洞示例

      $hash1 = md5('240610708');
      $hash2 = md5('QNKCDZO');
      
      if ($hash1 == $hash2) {
          echo '两个不同的字符串产生的MD5值被认为是相等的。';
      }

      md5(‘240610708’) 的结果是 0e462097431906509019562988736854,
      md5(‘QNKCDZO’) 的结果是 0e830400451993494058024219903391。

      由于这两个MD5值都以0e开头,后面跟随的都是数字,根据PHP的等值比较规则,这两个MD5值被认为是相等的,即使它们实际上是不同的字符串的结果。

      安全建议
      为避免这种安全漏洞,推荐使用全等比较操作符 ===,因为全等比较会认为这两个MD5值不相等

      当涉及到敏感数据比对(如密码哈希值)时,应始终使用全等比较操作符 ===,以确保既比较值也比较值的类型,从而避免潜在的安全风险。

      PHP中关于数组使用md5函数可能遇到的“漏洞”或不当行为,主要是由于md5函数对非字符串参数的处理方式引起的。由于 PHP 的 md5 函数不直接支持数组类型,尝试对任何数组使用 md5 函数将导致 PHP 内部将数组转换为字符串 “Array”,然后对该字符串计算 MD5 值。因此,不管数组的内容或数组变量的名称如何,只要传递的是数组,md5 函数都会返回对字符串 “Array” 的 MD5 哈希值,这意味着所有不同的数组都会返回相同的 MD5 值。

      行为示例

      $hash = md5(array('key' => 'value'));
      echo $hash;

      上述代码会产生类似以下的警告:

      vbnet
      Copy code
      Warning: md5() expects parameter 1 to be string, array given in ...

      并且md5函数会返回对字符串"Array"的MD5哈希值,而不是输入数组的哈希值。这意味着,无论数组的内容如何,对任何数组使用md5都会返回相同的结果,即:

      echo md5("Array"); // 产生固定的输出

      intval函数

      PHP的intval()函数用于获取变量的整数值。这个函数可以将字符串、浮点数或布尔值转换成整数。当处理数值转换时,intval()是一个非常有用的函数。

      基本语法如下:

      intval(mixed $value, int $base = 10): int
      $value:要转换的值。它可以是字符串、浮点数、布尔值,或者任何你想转换为整数的值。
      $base:转换的基数(进制)。默认是10进制。这个参数对于字符串转换特别有用,因为它允许你指定字符串表示的数值的基数。有效的基数范围是2到36。
      字符串转整数:
      echo intval("42"); // 输出: 42
      
      浮点数转整数:
      echo intval(42.7); // 输出: 42
      
      布尔值转整数:
      echo intval(true); // 输出: 1
      echo intval(false); // 输出: 0
      
      带基数的字符串转整数:
      echo intval('1e', 16); // 输出: 30,因为 '1e' 在16进制下等于十进制的30

      注意事项

      • 转换规则:如果$value是字符串,则会根据字符串的起始部分尝试转换成整数。如果字符串起始部分不是数字或符号(+/-),intval()将返回0。
      • 浮点数转换:转换浮点数时,intval()会将浮点数向下取整到最接近的整数值。
      • 布尔值转换:布尔值true会被转换为1,false会被转换为0。
      • 基数的使用:当处理字符串转换时,$base参数允许你指定字符串是哪个基数(进制)下的数值,这对于处理不同进制的数值字符串特别有用。

      strpos函数

      在PHP中,strpos() 函数用于查找字符串内首次出现的另一字符串的位置。如果找到了字符串,则返回首次出现的位置的索引(注意,索引从0开始)。如果没有找到,则返回 FALSE。

      strpos(string $haystack, mixed $needle, int $offset = 0): int|false
      $haystack:需要搜索的字符串。
      $needle:要查找的字符串值。如果 needle 不是一个字符串,它将被转换为整型并视为字符的顺序值。
      $offset:可选参数,指定从哪个字符位置开始搜索。默认值为0。
      $position = strpos("Hello world", "world");
      echo $position; // 输出: 6
      
      //在这个例子中,"world" 在 "Hello world" 中首次出现的位置是索引6(H=0, e=1, l=2, l=3, o=4, 空格=5, w=6)。
      
      //未找到字符串:
      $position = strpos("Hello world", "php");
      if ($position === false) {
          echo "字符串未找到";
      } else {
          echo "字符串位于位置: $position";
      }
      
      //在这个例子中,由于 "php" 没有在 "Hello world" 中出现,所以 strpos() 返回 false。
      
      //使用偏移量:
      $position = strpos("This is a test", "is", 3);
      echo $position; // 输出: 5
      
      //这里,搜索从索引3("s"的位置)开始,所以找到的 "is" 是在索引5的位置,而不是字符串开头处的 "is"。

      注意事项
      严格比较:当 strpos() 返回0时,表示找到的字符串位于 $haystack 的开始位置。因为0在PHP中是一个有效的位置索引,但它在布尔上下文中被视为 false。因此,比较 strpos() 的结果时,应使用全等(=== 或 !==)比较,以准确区分返回的0和 false。

      in_array函数

      PHP中的in_array()函数用于检查数组中是否存在某个值。如果指定的值存在于数组中,则函数返回true;否则,返回false。这个函数在需要判断一个项是否已经包含在数组中时非常有用,比如在处理表单输入或验证数据时。

      in_array(mixed $needle, array $haystack, bool $strict = false): bool
      $needle:需要搜索的值。
      $haystack:被搜索的数组。
      $strict:这是一个可选参数,如果设置为true,则in_array()还会检查$needle与找到的元素的类型是否完全相同。
      $array = array("Apple", "Orange", "Banana");
      
      if (in_array("Apple", $array)) {
          echo "找到了Apple。";
      } else {
          echo "没有找到Apple。";
      }
      
      //使用严格模式:
      $array = array(1, 2, "3", 4);
      
      if (in_array("3", $array, true)) {
          echo "严格模式:找到了字符串'3'。";
      } else {
          echo "严格模式:没有找到字符串'3'。";
      }
      
      if (in_array(3, $array, true)) {
          echo "严格模式:找到了数字3。";
      } else {
          echo "严格模式:没有找到数字3。";
      }

      在这个例子中,第一次in_array调用未找到"3",因为启用了严格模式,而数组中的"3"是字符串类型,与搜索的数字类型不匹配。第二次调用同样没有找到数字3,因为虽然数组中确实有一个值为3的字符串,但严格模式要求类型也必须匹配。

      注意事项
      在不使用严格模式(默认情况)时,in_array()只比较值,不比较类型。这意味着数字1和字符串"1"会被视为相等。
      在使用严格模式(将$strict参数设置为true)时,in_array()会同时比较值和类型,提高了比较的准确性。

      preg_match函数

      这是PHP中用于执行正则表达式匹配的函数。preg_match()函数会执行一个正则表达式匹配测试,如果模式匹配成功,则返回1;如果失败,则返回0;如果发生错误,则返回FALSE。

      preg_match(string $pattern, string $subject, array &$matches = null, int $flags = 0, int $offset = 0)
      $pattern:要搜索的模式,即正则表达式。正则表达式字符串需要被定界符包围,如/pattern/。
      $subject:输入字符串,即需要进行正则表达式匹配的文本。
      $matches:(可选)如果提供,它将被填充为搜索结果。$matches[0]将包含完整模式匹配到的文本,$matches[1]将包含第一个括号内的子模式匹配到的文本,依此类推。
      $flags:(可选)可以用来控制匹配的各种选项。
      $offset:(可选)从目标字符串的哪个位置开始搜索(以字节为单位)。
      $subject = "This is a test";
      $pattern = "/is/";
      
      if (preg_match($pattern, $subject, $matches)) {
          echo "匹配成功。\n";
          print_r($matches);
      } else {
          echo "匹配失败。";
      }

      str_replace函数

      PHP中的str_replace()函数用于替换字符串中的一些字符或子字符串。这个函数非常灵活,可以处理简单的字符替换,也能进行批量的子字符串替换,并且可以在数组中搜索和替换。

      str_replace(mixed $search, mixed $replace, mixed $subject, int &$count = null): mixed
      $search:要查找的字符串(或字符串数组)。这是你想要在$subject中被替换掉的部分。
      $replace:用于替换的字符串(或字符串数组)。这是替换$search找到的内容的部分。
      $subject:输入字符串(或字符串数组)。这是被搜索和替换的原文本。
      $count:(可选)一个变量,用于统计进行替换的次数。
      //返回替换后的字符串或数组。如果$subject是数组,那么str_replace()返回一个数组;如果$subject是字符串,返回一个字符串。
      
      echo str_replace("world", "PHP", "Hello world"); // 输出:Hello PHP,默认只替换一次
      
      //数组替换:
      $find = array('apple', 'banana');
      $replace = array('orange', 'grape');
      $subject = 'I love apple and banana.';
      
      echo str_replace($find, $replace, $subject); // 输出:I love orange and grape.
      
      //统计替换次数:
      $count = 0;
      str_replace('apple', 'orange', 'apple pie, apple juice, and apples', $count);
      echo $count; // 输出:3

      注意事项
      如果$search和$replace都是数组,则它们的键值一一对应,即每个$search的值将被对应$replace的值替换。
      如果$replace的元素少于$search的元素,多出的$search将用空字符串进行替换。
      如果$subject是数组,则$search和$replace的处理会应用于数组的每一个元素。
      str_replace()是大小写敏感的。如果需要进行大小写不敏感的替换,请使用str_ireplace()函数。

      例题1

      include("flag.php");
      highlight_file(__FILE__);
      if(isset($_GET['num'])){
      	$num=$_GET ['num’];
      	if(preg_match(”f [0-9]/”,$num)){
      		die("no no no! ");
      	}
      	if (intval ($num) ){
      		echo$flag;
      	}
      }

      payload:url + ?num[] = 1

      解析:$num是一个数组,这导致preg_match()直接返回false,并且不会执行die(“no no no!”),因为preg_match()期望的是字符串,而这里提供的是数组。当对数组应用intval()函数时,PHP会将数组转换为整数。在PHP中,将数组转换成整数通常结果为0。

      综上,该代码片段试图通过正则表达式来限制输入值必须为数字,并通过intval()来确保这个值在经过类型转换后仍然为真(即非零)。然而,由于$_GET[‘num’]可以通过num[] = 1变为数组,从而绕过了正则表达式检查。

      例题2

      include ("flag. php");
      highlight_file(__FILE__);
      if(isset ($_GET ['num'])){
      	$num =$_GET['num'];
      	if($num==="4476"){
      		die("no no no! ");
      	}
      	if(intval ($num, 0)===4476){
      		echo $flag;
      	}else {
      		echo intval ($num, 0);
      	}
      }

      payload: url + ?num = 010574

      解析:使用intval()函数时,如果指定第二个参数(基数)为0,那么intval()函数会根据字符串的格式自动判断数值的基数。特别是,如果字符串以"0"开头,PHP会将这个字符串当作八进制数来处理。
      因此,当传递num=010574时,intval($num)会将010574解释为一个八进制数,转换成十进制是4476。由于$num(字符串"010574")不严格等于(===)字符串"4476",因此不会执行die(“no no no!”);语句。在接下来的if语句中,intval($num)的结果确实等于4476(十进制),因此满足条件,执行echo $flag;,展示了$flag的内容。

      例题3

      show_source(__FILE__);
      include('flag.php');
      $a = $_GET['cmd'];
      if (preg_match('/^php$/im', $a)) {
          if (preg_match('/^php$/i', $a)) {
              echo 'hacker';
          } else {
              echo $flag;
          }
      } else {
          echo 'nonononono';
      }

      payload: url + ?cmd = %0aphp

      解析:%0a是URL编码形式的换行符(\n)。由于第一个preg_match使用了多行(m)模式,它将允许正则表达式匹配字符串中的任何位置(由于换行符的存在),使得$a匹配成功。换句话说,尽管$a的值以换行符开始,它仍然满足正则表达式的条件。第二个preg_match没有使用多行模式,因此理论上不会匹配以换行符开始的字符串\nphp,这导致执行流进入else分支,打印出$flag。

      版权声明:本文内容来自第三方投稿或授权转载,原文地址:https://blog.51cto.com/u_15854462/11803182,作者:穹渊安全,版权归原作者所有。本网站转在其作品的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如因作品内容、版权等问题需要同本网站联系,请发邮件至ctyunbbs@chinatelecom.cn沟通。

      上一篇:用MATLAB求最短路径(graphshortestpath)和求最小生成树(minspantree),代码演示

      下一篇:用go语言编写。作为项目经理,你规划了一份需求的技能清单 req_skills, 并打算从备选人员名单 people 中选出些人组成一个「必要团队」

      相关文章

      2025-05-19 09:04:44

      js小题2:构造函数介绍与普通函数对比

      js小题2:构造函数介绍与普通函数对比

      2025-05-19 09:04:44
      new , 关键字 , 函数 , 对象 , 构造函数
      2025-05-19 09:04:30

      【Canvas技法】辐射式多道光影的实现

      【Canvas技法】辐射式多道光影的实现

      2025-05-19 09:04:30
      代码 , 函数 , 实现
      2025-05-19 09:04:22

      外设驱动库开发笔记54:外设库驱动设计改进的思考

      外设驱动库开发笔记54:外设库驱动设计改进的思考

      2025-05-19 09:04:22
      使用 , 函数 , 初始化 , 定义 , 对象
      2025-05-19 09:04:14

      C语言字符函数和字符串函数--(超全超详细)

      C语言字符函数和字符串函数--(超全超详细)

      2025-05-19 09:04:14
      函数 , 字符 , 字符串
      2025-05-19 09:04:14

      复杂度的OJ练习

      复杂度的OJ练习

      2025-05-19 09:04:14
      代码 , 复杂度 , 思路 , 数组 , 算法
      2025-05-16 09:15:24

      如何将一串数字用函数的方法倒过来(C语言)

      如何将一串数字用函数的方法倒过来(C语言)

      2025-05-16 09:15:24
      函数 , 数字 , 数组
      2025-05-16 09:15:24

      jQuery遍历对象、数组、集合

      jQuery遍历对象、数组、集合

      2025-05-16 09:15:24
      jQuery , 对象 , 数组 , 遍历 , 集合
      2025-05-16 09:15:17

      递归,搜索,回溯算法(3)之穷举,暴搜,深搜,回溯,剪枝

      递归,搜索,回溯算法(3)之穷举,暴搜,深搜,回溯,剪枝

      2025-05-16 09:15:17
      回溯 , 子集 , 数组 , 算法 , 递归
      2025-05-14 10:33:31

      【数据结构】第一章——绪论(2)

      【数据结构】第一章——绪论(2)

      2025-05-14 10:33:31
      函数 , 实现 , 打印 , 理解 , 算法 , 输入 , 输出
      2025-05-14 10:33:31

      计算机小白的成长历程——数组(1)

      计算机小白的成长历程——数组(1)

      2025-05-14 10:33:31
      strlen , 个数 , 元素 , 内存 , 十六进制 , 地址 , 数组
      查看更多
      推荐标签

      作者介绍

      天翼云小翼
      天翼云用户

      文章

      33561

      阅读量

      5245455

      查看更多

      最新文章

      【Canvas技法】辐射式多道光影的实现

      2025-05-19 09:04:30

      外设驱动库开发笔记54:外设库驱动设计改进的思考

      2025-05-19 09:04:22

      C语言字符函数和字符串函数--(超全超详细)

      2025-05-19 09:04:14

      复杂度的OJ练习

      2025-05-19 09:04:14

      如何将一串数字用函数的方法倒过来(C语言)

      2025-05-16 09:15:24

      30天拿下Rust之高级类型

      2025-05-14 10:33:25

      查看更多

      热门文章

      Python高级变量类型

      2024-09-24 06:30:08

      mysql列存储引擎-字符串属性列-列压缩测试

      2023-04-23 09:34:23

      刷题——Python篇(2)类型转换

      2023-02-13 07:58:38

      Arrays类的使用

      2023-06-08 06:23:00

      Python 函数调用父类详解

      2023-04-23 09:44:31

      leetcode-数组-151

      2023-02-15 08:24:47

      查看更多

      热门标签

      java Java python 编程开发 代码 开发语言 算法 线程 Python html 数组 C++ 元素 javascript c++
      查看更多

      相关产品

      弹性云主机

      随时自助获取、弹性伸缩的云服务器资源

      天翼云电脑(公众版)

      便捷、安全、高效的云电脑服务

      对象存储

      高品质、低成本的云上存储服务

      云硬盘

      为云上计算资源提供持久性块存储

      查看更多

      随机文章

      Java数组初始化及使用技巧

      PHP基础教程

      一篇文章助你理解Python2中字符串编码问题

      JAVA期末复习2

      【C++二分查找 前缀和】1712. 将数组分成三个子数组的方案数|2078

      Python数据分析与展示:matplotlib绘图库入门-6

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2025 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号