极狐(GitLab)研发团队前端研发人员的Upstream First实践
极狐(GitLab)研发团队前端开发人员Jeremy Wu作为极狐(GitLab)Upstream First的践行者,在工作中发现了GitLab的一些security问题,直接贡献到了Upstream(GitLab),最后获得了Upstream的赞赏。以下是Jeremy Wu关于Upstream First的故事:
Jeremy Wu是极狐(GitLab)研发团队的前端开发人员,主要工作是前端方向基于XSS攻击的防范。简单的来讲就是“不相信用户的输入”,通过一系列方法将用户的输入“消毒”,并展示到用户界面上。关于安全性问题的发现,Jeremy Wu是通过issue里的 ~security标签来查找的,而且完成的安全性相关的代码修复都是基于~security和~easy for new contributor来做的。他以onboarding warm up为出发点,去找寻“潜在的安全问题”,这些安全性问题可能导致用户的输入内容劫持网站。
因为安全性问题的发现与修复是一个长期的过程,在代码提交的时候需要由专业的安全团队去做代码审查,防止有代码会存在潜在的安全性问题,在这个前提下安全团队会定期去检查代码和通过一系列的CI自动化扫描来查找是否有潜在风险。对于GitLab来说,更是有着严格的代码安全审核流程,而Jeremy Wu是非常熟悉这个流程的。他把security贡献的Upstream First归纳为三个步骤:
1. 首先需要去对应的issue下面找到对应的issue owner,然后询问是否可以着手修复这个对应的 issue,owner如果觉得可以会把这个issue assignee改为“你”,接下来就可以开始修复工作。而Jeremy Wu对修复流程也是驾轻就熟,他用如下三步就会完成问题的修复:
a. 找到未经“消毒”的内容片段;
b. 将该片段引入“消毒”代码;
c. 把“消毒”后的代码替换到源片段。
通过以上三步即可完成安全性问题的修复。
2. 如果在做的过程中遇到了一些技术性的困难,可以直接在issue里与issue的owner进行沟通,讨论如何解决。沟通大致为:
当前所遇到的问题的一段详细描述
如何复现遇到的问题
如果描述且复现步骤清晰,一般不需要经过第二轮沟通则可以解决。但在实施过程中,Jeremy为了更加熟悉GitLab本身,他选择先去找到代码对应的页面(找入口),然后通过上述方法给代码补丁之后再对对应页面进行观察,是否与之前渲染的内容有出入,若无出入则可以将代码提交,并进行Merge Request。
3. Merge Request
当Merge Request做好之后,GitLab Dangerbot会自动为“你”推荐对应的MR reviewer。一般来说是三个(frontend/backend/database + maintainer + security),然后Jeremy Wu会手动在MR的channel里ping上述的issue owner。如果在MR review的过程中有一些代码建议以及修改,在与对应的reviewer进行交涉以及代码修改之后代码即可以被合进Upstream的仓库。
一般来说,到这个阶段某个issue就可视为结束了。如果需要后续的跟进,Upstream owner会创建对应的 follow up issue来跟进。
Jeremy Wu一直使用这种工作方式与 Upstream(GitLab)进行协作,其出色的工作获得了Upstream的赞赏。
Upstream First:培育真正开源文化,构建良好开源生态
开源是开源参与共同体(community)通过协作创新的极致体现。也被视为能够解决国内“卡脖子”问题的有效手段。Upstream First理念是能够培育真正开源文化,构建开源生态的基石。
极狐(GitLab)自成立之日起就秉承“开源开放,人人贡献”的理念,鼓励所有极狐人积极参与开源贡献,努力践行Upstream First,期望能够通过极狐人的努力来夯实开源发展基础,完善极狐GitLab开源生态发展;打造开源软件品牌,构建生态完善的开源社区、开放联盟;推广普及开源文化,培养更多开源人才,扩大开源生态发展;促进产学研协同创新,释放“软件定义”创新活力,助力国内软件产业的开源开放、创新发展,提升国际竞争力,从而加速全球化布局。
极狐(GitLab)研发团队前端开发人员Jeremy Wu作为极狐(GitLab)Upstream First的践行者,在工作中发现了GitLab的一些security问题,直接贡献到了Upstream(GitLab),最后获得了Upstream的赞赏。以下是Jeremy Wu关于Upstream First的故事:
Jeremy Wu是极狐(GitLab)研发团队的前端开发人员,主要工作是前端方向基于XSS攻击的防范。简单的来讲就是“不相信用户的输入”,通过一系列方法将用户的输入“消毒”,并展示到用户界面上。关于安全性问题的发现,Jeremy Wu是通过issue里的 ~security标签来查找的,而且完成的安全性相关的代码修复都是基于~security和~easy for new contributor来做的。他以onboarding warm up为出发点,去找寻“潜在的安全问题”,这些安全性问题可能导致用户的输入内容劫持网站。
因为安全性问题的发现与修复是一个长期的过程,在代码提交的时候需要由专业的安全团队去做代码审查,防止有代码会存在潜在的安全性问题,在这个前提下安全团队会定期去检查代码和通过一系列的CI自动化扫描来查找是否有潜在风险。对于GitLab来说,更是有着严格的代码安全审核流程,而Jeremy Wu是非常熟悉这个流程的。他把security贡献的Upstream First归纳为三个步骤:
1. 首先需要去对应的issue下面找到对应的issue owner,然后询问是否可以着手修复这个对应的 issue,owner如果觉得可以会把这个issue assignee改为“你”,接下来就可以开始修复工作。而Jeremy Wu对修复流程也是驾轻就熟,他用如下三步就会完成问题的修复:
a. 找到未经“消毒”的内容片段;
b. 将该片段引入“消毒”代码;
c. 把“消毒”后的代码替换到源片段。
通过以上三步即可完成安全性问题的修复。
2. 如果在做的过程中遇到了一些技术性的困难,可以直接在issue里与issue的owner进行沟通,讨论如何解决。沟通大致为:
当前所遇到的问题的一段详细描述
如何复现遇到的问题
如果描述且复现步骤清晰,一般不需要经过第二轮沟通则可以解决。但在实施过程中,Jeremy为了更加熟悉GitLab本身,他选择先去找到代码对应的页面(找入口),然后通过上述方法给代码补丁之后再对对应页面进行观察,是否与之前渲染的内容有出入,若无出入则可以将代码提交,并进行Merge Request。
3. Merge Request
当Merge Request做好之后,GitLab Dangerbot会自动为“你”推荐对应的MR reviewer。一般来说是三个(frontend/backend/database + maintainer + security),然后Jeremy Wu会手动在MR的channel里ping上述的issue owner。如果在MR review的过程中有一些代码建议以及修改,在与对应的reviewer进行交涉以及代码修改之后代码即可以被合进Upstream的仓库。
一般来说,到这个阶段某个issue就可视为结束了。如果需要后续的跟进,Upstream owner会创建对应的 follow up issue来跟进。
Jeremy Wu一直使用这种工作方式与 Upstream(GitLab)进行协作,其出色的工作获得了Upstream的赞赏。
Upstream First:培育真正开源文化,构建良好开源生态
开源是开源参与共同体(community)通过协作创新的极致体现。也被视为能够解决国内“卡脖子”问题的有效手段。Upstream First理念是能够培育真正开源文化,构建开源生态的基石。
极狐(GitLab)自成立之日起就秉承“开源开放,人人贡献”的理念,鼓励所有极狐人积极参与开源贡献,努力践行Upstream First,期望能够通过极狐人的努力来夯实开源发展基础,完善极狐GitLab开源生态发展;打造开源软件品牌,构建生态完善的开源社区、开放联盟;推广普及开源文化,培养更多开源人才,扩大开源生态发展;促进产学研协同创新,释放“软件定义”创新活力,助力国内软件产业的开源开放、创新发展,提升国际竞争力,从而加速全球化布局。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请发送邮件至 ZLME@xxxxxxxx@hotmail.com 举报,一经查实,立刻删除。