博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后端系统开发之白名单机制
阅读量:4315 次
发布时间:2019-06-06

本文共 1197 字,大约阅读时间需要 3 分钟。

后端系统中经常会听到“某某白名单”的名字,为什么要有白名单呢?使用白名单机制有什么好处? 

一首脍炙人口的儿歌可以帮我们领悟答案。 

“小白兔乖乖,把门儿开开。快点开开,我要进来。

不开不开就不开,妈妈没回来,我就不开门。” 

小白兔的妈妈在能开门的白名单里。显然,白名单机制是一种简单易行的系统自我保护机制,没有白名单的“开门系统”存在严重的安全隐患。 

在大型后端系统中,白名单机制是必不可少的,主要用在以下几个方面: 

 

黑名单的对立面。这是白名单最明显的应用场景,例如微信朋友圈禁止抖音、快手等平台的短视频分享,但是微信、QQ等APP拍摄的小视频是可以分享的,所以这里有一个“短视频分享白名单”在起作用。 

 

测试帐号。我们在测试新功能的时候,刚开始不想对所有用户都生效,可以通过白名单机制限制生效范围,利用白名单的思想可以对账号进行分类,只有在白名单中的测试帐号才能体验新功能,不在白名单中的账号则完全无感知。 

 

上线控制。举个例子:A公司的产品有PC、APP、微信、小程序等4个客户端,现在由于公司业务发展,需要紧急上线某个功能,由于各客户端的开发任务都很重,只有APP和微信顺利完成开发,PC和小程序要延期上线,这时后端系统显然不能对所有客户端渠道都开放新功能,可以通过新增一个该功能的白名单配置,控制上线节奏。示意如下:

X功能上线范围 = APP,Weixin

 

有了这个白名单,就可以玩出花样来:

PC、小程序上线,可以修改白名单,增加配置;

后端系统发现该功能的一个BUG,该BUG只影响APP,而不影响微信,可以修改白名单配置,让APP的功能紧急下线处理,但是微信仍然保留,待BUG解决后再对APP上线。

 

限制范围。严格来说特权账号、测试帐号和上线控制都是限制范围的例子,所以说限制范围其实是最能体现后端系统中白名单机制威力的场景,工程师们可以利用各种白名单机制缩小某个功能的生效范围,从而实现系统自我保护。写到这里的时候,不禁想起刚刚过去没有多久的拼多多一张测试优惠券跑到线上的严重BUG,后端系统一定要通过设置各种限制条件,防止此类悲剧的发生。

 

白名单如何实现:白名单实现非常简单,配置文件、数据库中的表都可以用来实现白名单。白名单一般最终会加载到内存中,通常用set或者map存储,以方便快速查找。

 

一句话总结:白名单机制是一种简单易用的技术手段,利用白名单机制方便测试和上线控制,实现各类功能限制,保护系统安全和工程师职业生涯。

 


金句分享

就在刚才,我注册了一家自己的公司。任何公司都是从一笔钱开始的,所以我的公司现在除了钱之外什么都没有。

出自《一本书读懂财报》,作者是清华大学会计学主任,肖星。

 

解读:把知识讲的有趣生动是非常了不起的本事,这本有趣的书只有192页,推荐大家阅读。

 

 

转载于:https://www.cnblogs.com/zgwu/p/10588791.html

你可能感兴趣的文章
flume+elasticsearch+kibana遇到的坑
查看>>
Javascript 高阶函数等
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>
Alpha 冲刺(3/10)
查看>>
Kaldi中的Chain模型
查看>>
spring中的ResourceBundleMessageSource使用和测试示例
查看>>
css规范 - bem
查看>>
SQL 通用数据类型
查看>>
UVALive 6145 Version Controlled IDE(可持久化treap、rope)
查看>>
mysql 将两个有主键的表合并到一起
查看>>
底部导航栏-----FragmentTabHost
查看>>
在linux中安装jdk以及tomcat并shell脚本关闭启动的进程
查看>>
apk,task,android:process与android:sharedUserId的区别
查看>>
MySQL 同主机不同数据库之间的复制
查看>>
iOS菜鸟开发 UIView,UIImageView 的点击事件
查看>>
取得GridView被隐藏列的值方法集合
查看>>
第七章例7-14
查看>>