摸不了鱼了

2019 年 11 月 26 日,本来应该是无比平静的一天,开开会,改改bug,摸摸鱼之后等着下班。刷着新闻的间隙,手机的消息提示音响了起来,收到了一条邮件,平时收到邮件我都会选择稍后处理模式继续摸鱼,但是看到邮件标题后,我感觉摸鱼是摸不得了,怕不是捅了什么篓子,邮件的标题是这样的:

什么东西?怎么了?我一看到“国家信息安全”几个大字,手里摸的鱼都抓不牢了,我当时真的被唬住了,赶紧点开邮件查看一下我到底做了什么,我真的不知道我干了什么,瞬间进入巨怂模式,屏气凝神不敢说话。

国家信息安全漏洞共享平台的邮件

点开邮件之后,内容如下:

主要文案为:

近日,国家信息安全漏洞共享平台(即中国国家漏洞库,CNVD)接收到报告,获知如下漏洞信息,CNVD-C-2019-195336 Newbee-mall v1.0.0存在SQL注入漏洞。该漏洞经测试,情况属实。现将漏洞情况通报,请贵单位协助做好漏洞分析和处置工作。

国家信息安全漏洞共享平台发现了一处程序漏洞,通知我赶紧处理。

看了邮件内容之后,心情缓和了很多,哎呀,我还以为你要抢我鸡蛋呢,原来是这个 bug,这个问题其实我早就知道了。虽然现在不是巨怂模式,但是依然有点怂,我很纳闷儿,当时主要有如下几个疑问:

  • 这个 bug 并不严重,而且已经修复了,现在这个邮件是什么意思?
  • 就是这么一个问题怎么就会被“国家信息安全漏洞共享平台”给捅出来了?
  • 这个“国家信息安全漏洞共享平台”是真的吗?怕不是要被骗了吧?

好的,带着这几个问题,摸鱼是摸不下去了,赶紧查一下吧,顺便也问问大家到底是怎么回事。

来龙去脉

很多朋友看到这里应该会很好奇,狗十三你到底写了一个什么 bug,还被国家信息安全漏洞共享平台给发现了?

莫慌莫慌,我们从头讲起,十三带着大家来捋一捋这之中的来龙去脉。

几个月之前,也就是 2019 年 9 月份的时候,我在 GitHub 开源平台上发布了一个开源项目 newbee-mallnewbee-mall 项目(新蜂商城)是一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发,这个开源项目也开源了好几个月,但是因为最近比较忙,我还没有介绍给大家,后续我会整理一些文章来详细地介绍一下这个 Spring Boot 开源商城项目。

以上是事件背景,由于是刚刚开源嘛,肯定还有很多小问题还没来得及修复,也因此有一些朋友给我提了一些 issue,其中有一条 issue 内容如下:

这是开源项目 newbee-mall 的第一条 issue,这位朋友给我提的意见是:项目里的部分 SQL 语句存在 SQL 注入的危险。好的,我看到这条 issue 之后就放在那里了,准备在空的时候给修复掉,大家能够从图中看出,这条 issue 是在 2019 年 10 月 20 号提给我的,我也在 10 月 23 号把这个问题给修复并且关掉了这条 issue,本以为是很小的一件事情,项目有 bug,修复嘛,对吧?

但是后面又出现了一些事情,一些意料之外的事情,并不是这封邮件,在这封邮件之前还有一件事情要和大家说一说。

CVE 国际安全漏洞库

来,继续。

刚刚说了“国家信息安全漏洞共享平台”,这是我们国内的漏洞库,在接到这封邮件之前呢,我发现 newbee-mall 项目的那个 SQL 注入问题已经出现在了 CVE 的官网,也就是国际安全漏洞库也收录了这条 SQL 注入漏洞。

被 CVE 收录这件事情我是怎么发现的呢?

做过开源项目的都知道,在仓库里我们是可以查看近期项目的访问来源的,也就是大家通过哪些渠道进入到我们的开源仓库这些都是可以追溯的,大致的页面如下:

分别是网站的 LOGO 以及网址,还有就是通过这个网址的访问统计,我偶尔也会看一些这个页面,关心一下项目的访问情况。某一天呢,我忽然发现在这些记录里有一条很陌生很陌生的记录,也就是 CVE 网站的访问记录,而且那几天,天天都有好几条统计记录,其实一开始我也不知道 CVE 是什么,我只是觉得这个 LOGO 和网址有些陌生,于是就点进去了。

好的,点进去就发现之前提到的那条 SQL 注入问题被收录到这个网站里了,阿西吧,内容如下:

很搞人心态的是什么呢?我压根儿没理这个东西,因为我觉得毕竟是一个小 bug,而且我都已经修掉了,你挂着就挂着吧,老子才不理你呢。对,狗十三就是这么傲娇。

至于当时的心态为什么那么傲娇,而收到国内漏洞库邮件的时候差点尿裤子呢?为什么反差如此之大?这一切的背后到底是道德的沦丧,还是人性的扭曲?

其实都不是,主要因为 CVE 是一个国外站点,我并不熟悉,我也根本没有在意,而且我真的觉得那个 SQL 注入的小 bug 应该不至于搞多大阵仗。

只是这封邮件之后我才想到,早在收到这封邮件的一个月之前呢,国际安全漏洞库也收录了这个漏洞,我还真的是丢人丢到国际上了,真的是有够好笑呢。

国家信息安全漏洞共享平台邮件的后续反馈

好的,咱们把视线拉回到 11 月 26 号,我在收到那封邮件之后就带着几个疑问,于是我就把这封邮件的一些内容发给了一些朋友,也发到了自己的 QQ 群里,主要是想了解一下我是不是很危险,又怂了。

折腾了一个多小时吧,也收到了大家很多的信息,最终得出结论,组织是真的,问题也不大,都已经修复了,就别再担心了。

终于松了一口气。

最终呢,我也给国家信息安全漏洞共享平台回了一封邮件,告诉他们问题已经修复,不用担心,同时也感谢他们的善意提醒。

事情到了这里,其实已经结束,整理这篇文章的目的也就是供大家摸鱼的时候有点内容可以看看,同时,也了解一下 CVE 和 CNVD 这两个组织,如果有什么问题或者想要了解的事情呢,大家也可以留言给我,大家一起讨论讨论。

写在最后

做个小推广,感兴趣的朋友可以看一看,最近我在掘金平台上发布了一本小册《Spring Boot 大型线上商城项目实战教程》

小册将围绕 Spring Boot 技术栈,使用的其它技术框架也会兼顾最新技术动向,对知识进行拓展,由浅入深,步步为营,在学习基础的同时也能够掌握一定的开发技巧,不仅仅只是学习 Spring Boot 的皮毛,也知晓它的源码设计和内部原理,不仅仅只是学习 Spring Boot 的相关技术栈整合,也能够使用 Spring Boot 技术栈搭建一个大型的商城系统,从而让你拥有一个高质量的学习进阶体验。远离 Hello World 项目,让你既能够得到一份完整的实操项目,也能够帮你点满目前炽手可热的 Spring Boot 技术栈,为你的技术深度和薪水职位的提升提供充足的保障。

这是一个商城的实战项目,部分页面预览图如下:

  • 首页

  • 订单列表

感兴趣的朋友可以关注一下。

感谢大家的观看,我是十三,文章首发于我的公众号“程序员的小故事”。

捅娄子了,写个bug被国家信息安全漏洞共享平台抓到了?的更多相关文章

  1. 没错,老板让我写个 BUG!

    前言 标题没有看错,真的是让我写个 bug! 刚接到这个需求时我内心没有丝毫波澜,甚至还有点激动.这可是我特长啊:终于可以光明正大的写 bug 了

  2. 架构师写的BUG,非比寻常

    部门新来了个架构师,BAT背景,住在三环,开宝马上班,有车位. 小伙话不多,但一旦说话斩钉截铁,带着无法撼动的自信.原因就是,有他着数亿高并发经验,每一秒钟的请求,都是其他企业运行一年也无法企及的.这 ...

  3. 写英文bug的经验总结

    本文链接: https://www.cnblogs.com/hchengmx/p/10800855.html 由于工作原因,开bug的时候需要由英文开,刚开的时候比较痛苦,因为有些词汇老师用的不太准确 ...

  4. 脚本写一行echo也能写出bug ? glob了解一下

    背景 最近处理一个 bug 很有意思,有客户反馈某个配置文件解析失败了,出错的那行的内容就只有一个字母 a. 最开始以为是谁改动了处理的脚本,但要到了问题代码中的脚本,比较发现跟库上是一样的. 又经过 ...

  5. 写了Bug,误执行 rm -fr /*,我删删删删库了,要跑路吗?

    每日英语,每天进步一点点(偷笑): 前言 临近五一节,想到有 5 天假期,小林开始飘了. 写个简单的 Bash 脚本都不上心了,写完连检查都不检查,直接拖到到实体服务器跑. 结果一跑起来,发生不对劲, ...

  6. 糟糕,你写的 BUG 要被存1000年了!

    摘要:代码冰封,祖传千年! 把大象放在冰箱需要几步? 三步!把代码放在北极需要几步?纳尼? GitHub刚刚公布了一组照片,你写的代码(BUG)上周已经被打包运往北极保存. 只要你2月2日以前贡献过的 ...

  7. Doug Lea在J.U.C包里面写的BUG又被网友发现了

    这是why的第 69 篇原创文章 BUG描述 一个编号为 8073704 的 JDK BUG,将串联起我的这篇文章. 也就是下面的这个链接. https://bugs.openjdk.java.net ...

  8. 犹记当年写出bug睡不着,回想今天只求睡好渡余生……

    不想面对已经在博客园注册了3年多的时间 了,就是这么快的就已经过去了近3年的工作时间,从最开始的对编程的困惑到慢慢有一点的认识,好像哦就这样没有什么啊,也没有涉及到一些比较难的东西. 但是当初第一份工 ...

  9. #033 信安培训基础题Python解决网络安全实验室|网络信息安全攻防学习平台

    第三题猜猜这是经过了多少次加密?分值: 200 加密后的字符串为:一大串 字符串最后面是= 所以是base64.b64decode编码究竟为啥有=就是base64咱也不知道 咱也不敢问咋解密也是从网上 ...

随机推荐

  1. [LC]141题 Intersection of Two Linked Lists (相交链表)(链表)

    ①中文题目 编写一个程序,找到两个单链表相交的起始节点. 如下面的两个链表: 在节点 c1 开始相交. 注意: 如果两个链表没有交点,返回 null.在返回结果后,两个链表仍须保持原有的结构.可假定整 ...

  2. [剑指offer]第1题,二维数组中的查找

    ①题目 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. ...

  3. 在 ASP.NET Core 项目中使用 MediatR 实现中介者模式

    一.前言  最近有在看 DDD 的相关资料以及微软的 eShopOnContainers 这个项目中基于 DDD 的架构设计,在 Ordering 这个示例服务中,可以看到各层之间的代码调用与我们之前 ...

  4. shodan 文档学习笔记

    Table of Contents 1. Introduction 1.1. All About the Data 1.2. Data Collection 1.3. SSL in Depth 1.3 ...

  5. java版单例模式

    单例模式可以说是最常用的设计模式之一,其主要作用就是保证一个类只有一个实例,并且提供一个访问它的全局访问点,严格的控制用户的访问方式. 单例模式又分为懒汉模式和饿汉模式,首先说一下饿汉模式: 饿汉模式 ...

  6. Unittest框架的从零到壹(一)

    前言 Python中有非常多的单元测试框架,如unittest.pytest.nose.doctest等,Python2.1及其以后的版本已经将unittest作为一个标准模块放入Python开发包中 ...

  7. Spring中常见的设计模式——工厂模式

    一.简单工厂模式 简单工厂模式(Simple Factory Pattern)由一个工厂对象决定创建哪一种产品类的实例,简单工厂模式适用于工厂类负责创建对象较少的情况,且客户端只需要传入工厂类的参数, ...

  8. SpringBoot源码学习系列之异常处理自动配置

    SpringBoot源码学习系列之异常处理自动配置 1.源码学习 先给个SpringBoot中的异常例子,假如访问一个错误链接,让其返回404页面 在浏览器访问: 而在其它的客户端软件,比如postm ...

  9. Linux错误:Unable to locate package解决

    新买一个用于机器学习的实例,镜像系统Ubuntu.想安装一个上传.下载的包. 使用命令: sudo apt-get install lrzsz 结果一直报错: 解决方法: 使用命令: sudo apt ...

  10. 浅谈集群版Redis和Gossip协议

    昨天的文章写了关于分布式系统中一致性哈希算法的问题,文末提了一下Redis-Cluster对于一致性哈希算法的实现方案,今天来看一下Redis-Cluster和其中的重要概念Gossip协议. 1.R ...