阿里云WAF&DB体验交流

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 阿里云WAF&DB体验交流
近期因公司在各云产品使用上的一些情况,与阿里云各专家们进行了交流,从中深入的了解了阿里云安全WAF与DB两款产品,以此分享出来给大家参考。

阿里云MVP  云集   基础服务技术负责人  张强

1、web应用攻击防护
主要作用:防护常见的攻击手段,如SQL注入攻击,XSS跨站攻击等、配置后实时生效;
实现原理:根据URL请求参数实时校验,若发现URL中带有SQL或者JS等脚本语句,直接在网络层拦截。

2、恶意IP惩罚
主要作用:若发现同一IP在短时间内发生多次WEB攻击,自动将该IP拉黑一段时间,目前时间间隔与攻击次数只能由阿里云配置。
实现原理:结合WEB应用攻击防护,统计单位时间内的攻击频率,实现原理较简单。

3、CC安全防护
主要作用:基于IP+URL的组合防护策略,如针对某个IP在某个URL单位时间内的请求频率统计限制,规则可以自己指定,单目前不支持一个URL多个规则,阿里云正在优化。
实现原理:记录某个IP在某个URL上单位时间内的请求频率,跟恶意IP惩罚原理类似。

4、精准访问控制
主要作用:可对常见的HTTP请求字段进行条件组合,适用于对某个请求有特殊严格限制的操作。
实现原理:将HTTP请求中的IP、URL、Referer、Cookie、Header、Content-Type、X-forwarded-For等信息获取出来,根据用户指定的规则触发动作,相对于web攻击、IP惩罚、CC防护来说控制的条件粒度可以更细。
注意入坑:精准访问控制的匹配规则是根据列表,从上到下的匹配,若匹配上一条规则,则按照匹配上的条件来执行动作,不会继续往下执行,所以注意规则列表中的排列顺序;
                  
 e.g: 如下图排序,当杭州IP与客服IP访问注册验证码地址时,若匹配上规则,照样被拦截,IP放行将失效。
 
7bcb60c93d86c427a49c7af7839d850bc882216a

5、禁封地区
主要作用:禁止某个地区的IP请求访问。
实现原理:根据IP段来限制请求访问,实现原理比较简单。

6、网页防篡改
主要作用:锁定页面内容,防止人员手动误改或者黑客入侵后篡改,多应用于.org等类似政府网站。
实现原理:将设置的某个页面缓存处理。在设置的时间内返回固定的内容,实现比较简单。

7、数据风控
主要作用:识别黑白请求,如批量注册,批量刷某个接口等,防止非法跳跃式请求,目前数据风控只支持H5或网页端。
实现原理:在HTML页面插入token,正常请求链路都会有token附加信息,并且有效期只有一次,若直接跳跃请求,没有token信息或者token信息失效则断定为恶意请求;如A---B,从A正常跳转到B是带有token信息的,直接访问到B则链路上不会有token信息。

8、防敏感信息泄露
主要作用:避免重要信息泄露,如银行卡、身份证、手机号码等,针对返回报文信息做拦截处理。
实现原理:针对返回报文进行识别处理,若返回的接口不在白名单,并且有明感信息,则将报文中明感信息剔除,可能对前端样式内容等产生影响。

DB:
DB这块主要咨询了阿里云2个产品与RDS日常使用中遇到问题,包括注意点、排查思路、解决方案、SQL索引相关等,分开来介绍。

DB产品这块阿里云官方介绍有,但是写的比较商业化,按照个人的理解与阿里云的介绍来描述下:

1)、POLADB
     阿里云自研的一款DB,其核心原理是一写多读、分布式存储、看下阿里云的设计架构图:

  b4747b48d62acbb8487f012bcc7e5c050baef749


      采用计算与存储分离的设计理念,满足公有云计算环境下用户业务弹性扩展的刚性需求。数据库的计算节点(DB Server)仅存储元数据,而将数据文件、Redo Log等存储于远端的存储节点(Chunk Server)。各计算节点之间仅需同步Redo Log相关的元数据信息,极大降低了主实例和只读实例间的延迟,而且在主实例故障时,只读实例可以快速切换为主服务器,由于是分布式存储,是的I/O不在是瓶颈点,支持上百TB级别数据。

    PS:同开源MYSQL相比,拥有高性能(读写分离),阿里云号称比开源MYSQL性能提高6倍,100%兼容原生态MYSQL,支持数据量存储的同时保证了读写性能,主要用户大数据下OLTP类型的等值计算。
 官方资料:https://help.aliyun.com/product/58609.html?spm=a2c4g.11186623.3.1.Arp1jP 

2、HybridDB
      设计思想就是链路、计算和存储分离,实现松耦合分布式架构的HTAP数据库云服务,架构图如下:
38351dc456524e77ab55c36479f8c53e5ffe3a89
 

      可以这么来理解,大数据下分库分表的封装,类似云集现有的订单sharding库,只不过阿里云做了更全面的封装,如面对用户的只有一个库,其实内部是做了路由的,用户只要在创建表的时候指定路由规则即可,后续操作跟单台MYSQL完全一样,不用管路由算法,另外封装了多库连表查询,如where后面跟的是时间区间,数据散落在不同的分片时候,链路引擎会将不同节点的数据汇总后呈现给用户,让用户无感知的操作,可以基于一份数据OLTP与OLAP混合处理;由于面对用户的只是个proxy,所以可以做到无缝隙的动态扩容;了解的过程中可以拿POLADB与云集的order Sharding进行对比理解。

    PS:虽然封装完美,但也有自身痛点,总结一句话叫:上云容易下云难,下云后继续使用阿里云的POLADB能顶住,但如果自建MYSQL,数据层需要大改,并且自己写路由规则。

3、RDS使用问题与解决
    这块描述下日常使用RDS需要注意的事项:

 1、高可用切换原理:现将Master置为readOnly,Slave完成binlog同步与数据迁移后,Slave成为Master,Master停用,如果RDS前有挂proxy,闪短时间30内,若没挂,闪短时间约为10分钟左右,闪短期间数据库状态为readOnly状态。

2、设置 loose_max_statement_time:超时时间指的是SQL的执行处理时间,不包含排队等待时间。

3、若出现KILL不掉某种SQL进程时候(批量来源),可以使用SQL限流来处理,以免出现一条SQL拖垮整库的情况。
      SQL Filter
      SET GLOBAL sql_select_filter = '+,{CONC},KEY1~KEY2~KEY3.....';
      e.g.
     SET GLOBAL sql_select_filter = '+,10,a=1~b=2';
     作用:
     对同时包含 a=1 和 b=2 两个关键字的SQL,限制最高并发线程为10;
     注意:一般只对select进行限制如慢SQL,竞争锁等,注意关键字,如where等。
     PS:阿里云RDS封装后的功能,原生态开源MYSQL没有此功能。

4、联合索引创建的优先顺序:如果出现有表需要建立联合索引的情况,可以通入如下方式来排列优先级
      
        方法一:
         show index from `t_user`  --查看t_user表索引
         select count(DISTINCT(`user_id`)) /count(*) from t_user;--若等于1,说明user_id建立所以的优先级最高
         select count(DISTINCT(concat(`user_name` ,`user_id`))) /count(*) from t_user; --哪个值越接近1,则优先级越高,从左到右排列。

        方法二:如下图,数值越高则优先级越高。
   2e383ed8a08847ca4c388453dda92e9f1f4c0c1d


5、count(*) VS count(X):总结 count(expression)比count(*)和count(column),如果没有特殊业务含义的话,可以优先使用,具体可参考阿里云测试说明https://yq.aliyun.com/articles/379946?spm=a2c4e.11155435.0.0.16813312gMppl0 

6、补天临时参数设置:

     1、 rds_max_tmp_disk_space:控制 MySQL 能够使用的临时文件的大小,适用于一个 SQL 语句就消耗掉整个数据库的磁盘空间;
     2、tokudb_buffer_pool_ratio:控制 TokuDB 引擎能够使用的 buffer 内存大小,适用于选择了 tokudb 作为存储引擎的场景;
     3、loose_max_statement_time:控制单个 SQL 语句的最长执行时间,适用于控制数据库中的慢 SQL 数量;
     4、rds_threads_running_high_watermark:控制 MySQL 并发的查询数目,常用于秒杀场景的业务;

7、其他参考资料
https://yq.aliyun.com/articles/348692?spm=a2c4e.11155435.0.0.7ec533128qCgdf 
https://yq.aliyun.com/articles/348688?spm=a2c4e.11155435.0.0.7ec533128qCgdf 
https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2016-09-15)#10-sql-filter 
https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2016-10-14)#2-hint-solution-for-inventory 
https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2017-05-04)#2-thread-pool 
https://github.com/alibaba/AliSQL/wiki/Changes-in-AliSQL-5.6.32-(2016-09-15)#3-ddl-fast-fail 


总结:以上内容总结到此结束,若有疑问欢迎各位咨询;另,学到并且能用到,能解决问题才是王道。






目录
相关文章
|
7月前
|
云安全 负载均衡 网络协议
阿里云waf简介和如何配置​
阿里云WAF(Web应用程序防火墙)是一种高效、智能的云安全服务,旨在保护Web应用程序免受各种网络攻击的威胁。它可防止诸如SQL注入、跨站点脚本(XSS)和跨站点请求伪造(CSRF)等攻击,有效保障了Web应用程序的安全性与稳定性。 阿里云WAF在Web应用程序与互联网之间构建一道安全屏障,通过拦截和检测恶意流量,防止攻击者对您的Web应用程序进行攻击。它不仅覆盖了常见的网络攻击类型,还针对新兴的攻击手段进行了防护设计,确保您的Web应用程序在面对各种威胁时都能得到全方位的保护。
|
13天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
8月前
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
136 0
|
6月前
|
应用服务中间件
阿里云的WAF(Web应用防火墙)3.0的虚拟代理
阿里云的WAF(Web应用防火墙)3.0的虚拟代理
105 2
|
7月前
|
存储 SQL 机器学习/深度学习
VLDB论文解读|一文剖析阿里云Lindorm数据库在DB for AI领域的探索
论文主要针对大规模监控场景下海量时序数据的存储、访问、分析和管理带来的挑战,描述了阿里云多模数据库 Lindorm 带来的一站式解决方案。
|
8月前
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(二)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(二)
131 0
|
8月前
|
缓存 弹性计算 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(一)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)
156 0
|
8月前
|
安全 网络安全
阿里云WAF
阿里云WAF
275 2
|
8月前
|
云安全 机器学习/深度学习 移动开发
|
9月前
|
存储 Cloud Native 关系型数据库
阿里云瑶池PolarDB开源官网焕新升级:开放、共享和交流
近日,阿里云开源云原生数据库PolarDB官方网站全新升级上线。作为 PolarDB 开源项目与开发者、生态伙伴、用户沟通的平台,将以开放、共享、促进交流为宗旨,打造开放多元的环境,以实现共享共赢的目标。立即体验全新官网:https://openpolardb.com