专栏首页腾讯安全应急响应中心面向DevSecOps的编码安全指南| JavaScript篇
原创

面向DevSecOps的编码安全指南| JavaScript篇

文|martinzhou & l0u1s & monsoon

I. 背景

近年来,无论是DevSecOps,还是Google SRE的可靠和安全性理念,都提倡“安全需要每个工程师的参与”。其中涉及的“安全左移”理念也再次被推向前台,获得关注。

除安全团队建设一系列安全机制和工具外,每位开发者也可以身体力行地参与进来 —— 编写安全的代码,从源头杜绝漏洞。这时,就需要一份详实的参考材料和行动大纲。

几位对研发安全感兴趣的一线研究员,首次尝试从开发者视角,分功能、语言梳理了编码的最佳安全实践。包括C++、Go、JavaScript等。TSRC将分语言逐批与业界分享。

1.1 指南是如何梳理、编写的?

1.1.1 聚合各语言、组件、框架文档中的最佳安全实践

各语言、开发框架的文档中,一般也会给出安全加固指引。但相对分散,容易遗忘。通过代码安全指南的整合,能强化开发者们的安全意识。

图:散落在各类文档中的安全建议

1.1.2 参考业界经验,开展原创

在参考调研CWE、OWASP等现有规范的基础上,我们还注意到:在日常研发过程中,由于开发者首要考虑的是如何实现功能来完成需求。通过阐述安全的函数使用方式,更方便开发者记忆。

因此,采用了一种新的编排和阐述方式。尽管内容分类及表述方式有别,但核心内容殊途同归。

1.1.3 基于内外部已知的漏洞案例的复盘、抽象,不断完善指引条目

借助对内、外已知的漏洞案例的复盘,提炼产生漏洞的编码模式,不断补充先前未考虑到的风险规避建议。

1.1.4 举一反三,推导鲜有提及的风险点,力求面面俱到

除参考业界经验、沉淀转化已知漏洞案例外,我们还“主动出击”。结合各类开发文档和提炼的漏洞产生原因,挖掘鲜有提及的风险点加入《指南》中。以jQuery的.html()错误使用为例,漏洞原理是,传入.html()的变量值包含未过滤的HTML标签内容,产生DOM XSS。

通过回溯jQuery的官方手册,我们发现还有多个函数存在与.html()一样容易被误用的场景。如:.after()、.before()、.wrapAll())、.wrapInner()等。因此,最终形成的指南条目如下:

1.2 应用与落地

编码安全指南不仅可作为一线开发者的权威参考,还有助于开发黑、白盒漏洞扫描工具/策略。但设立指南只是安全建设“千里之行”的第一步,我们还在探索静态源代码分析、框架安全功能建设、安全开发库、自动漏洞修复等机制配合,进一步推动安全建设,欢迎关注其他同事们的后续分享。

II. JavaScript编码安全指南

全文详见《JavaScript编码安全指南 V1.0

腾讯研发安全团队

腾讯公司内部与自研业务贴合最紧密的一线安全工程团队之一。团队负责软件生命周期各阶段的安全机制建设,包括:制定安全规范/标准/流程、实施内部安全培训、设计安全编码方案、构建安全漏洞检测(SAST/DAST/IAST)与Web应用防护(WAF)系统等。在持续为QQ、微信、云、游戏等重点业务提供服务外,也将积累十余年的安全经验向外部输出。通过为腾讯云的漏洞扫描、WAF等产品提供底层技术支撑,助力产业互联网客户安全能力升级。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于威胁情报周期模型的APT木马剖析

    近日,腾讯服务器安全系统“洋葱”协助部署于公有云的某合作方捕获到一起APT事件,目前已处置完毕。处置过程中捕获木马样本一枚,该样本中包含了大量隐匿攻击手法,“洋...

    腾讯安全应急响应中心
  • 红蓝对抗之Windows内网渗透

    无论是渗透测试,还是红蓝对抗,目的都是暴露风险,促进提升安全水平。企业往往在外网布置重兵把守,而内网防护相对来说千疮百孔,所以渗透高手往往通过攻击员工电脑、外网...

    腾讯安全应急响应中心
  • 企业安全建设 丨 当我们在谈论推特安全事件时,我们在谈论什么?

    16日凌晨,众多推特“大V”突然集体转发诈骗信息 —— “只要给特定账号汇入等值1000美元的比特币,就能获得双倍返还”,受影响账户包括:前总统奥巴马、比尔盖茨...

    腾讯安全应急响应中心
  • Failed to minify the bundle Error from Uglifyjs 记一次打包压缩报错

    w候人兮猗
  • python入门_常见正则表达式匹配

    小蠢驴打代码
  • SQLserver SSMS安装 连接SQLserver

    SQLserver SSMS安装 连接SQLserver 以及使用SQLserver上传工具上传备份文件操作

    云知识Online
  • mac软件这样使用,你知道几个。(技术创作101训练营)

    听了腾讯云社区的授课,加上工作之后,将会使用到windows笔记本作为办公电脑。在此就想着把平时在mac上使用的软件整理一下,能帮到自己的软件分享给大家。

    崔笑颜
  • OBS推流

    治电小白菜
  • 「R」事实不等于标签:关于真假 png 的找 bug 记录

    我在日常更改 sigminer 手册后使用 knitr 生成网页文档时发现一直报错:

    王诗翔呀
  • 基于 Nginx 的中间件架构(更新 ing)

    #目标 ##一:教你实战 [x6q8fvgszc.png] [k5nbjqumbj.png] ##二:了解中间件架构 [image.png] [tualf423...

    JavaEdge

扫码关注云+社区

领取腾讯云代金券