面向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 应用与落地
编码安全指南不仅可作为一线开发者的权威参考,还有助于开发黑、白盒漏洞扫描工具/策略。但设立指南只是安全建设“千里之行”的第一步,我们还在探索静态源代码分析、框架安全功能建设、安全开发库、自动漏洞修复等机制配合,进一步推动安全建设,欢迎关注TSRC的后续分享。
II. JavaScript编码安全指南
腾讯研发安全团队
腾讯公司内部与自研业务贴合最紧密的一线安全工程团队之一。团队负责软件生命周期各阶段的安全机制建设,包括:制定安全规范/标准/流程、实施内部安全培训、设计安全编码方案、构建安全漏洞检测(SAST/DAST/IAST)与Web应用防护(WAF)系统等。在持续为QQ、微信、云、游戏等重点业务提供服务外,也将积累十余年的安全经验向外部输出。通过为腾讯云的漏洞扫描、WAF等产品提供底层技术支撑,助力产业互联网客户安全能力升级。
????《JavaScript编码安全指南》全文
面向DevSecOps的编码安全指南|JavaScript篇相关推荐
- 第 4 节:前端面试指南 — JavaScript篇
终于更新啦,刚更新完「CSS篇」之后,很多读者朋友都在微信催更「面试指南」系列的第 4 期 - JavaScript篇. 前 3 期没看的同学,建议先看完再来看这一期的,传送门: 第 1 节:「简历篇 ...
- JavaScript => JavaScript编码规范指南
JavaScript 编码规范指南 以下文档大多来自: Google JavaScript 编码规范指南 Idiomatic 风格 对于未提及的事项可以参考airbnb的JS编码规范 airbnb/j ...
- JavaScript编码风格指南
首次发表在个人博客 前言 程序语言的编码风格指南对于一个长期维护的软件而言是非常重要的;好的编程风格有助于写出质量更高.错误更少.更易于 维护的程序. 团队合作需要制定一些代码规范还有利用一些工具来强 ...
- Airbnb JavaScript 编码风格指南(2018年最新版)
Airbnb JavaScript 编码风格指南(2018年最新版) 访问此原文地址:http://galaxyteam.pub/didi-fe... 另外欢迎访问我们维护的https://www.t ...
- 函数闭包--JavaScript权威指南--基础篇4
函数JavaScript权威指南–基础篇4 一.知识点–函数–闭包 1.要理解函数闭包,要先知道几个概念: ①块级作用域和函数作用域的概念 FAQ:什么是块级作用域? 在类C语言中是这么定义的:变量的 ...
- c++编码风格指南_带回家的编码挑战的基本指南
c++编码风格指南 by Jane Philipps 简·菲利普斯 带回家的编码挑战的基本指南 (The Essential Guide to Take-home Coding Challenges) ...
- c++编码风格指南_100%正确编码样式指南
c++编码风格指南 Tabs or spaces? Curly brace on the same line or a new line? 80 character width or 120? 制表符 ...
- Spark性能优化指南——基础篇
在大数据计算领域,Spark已经成为了越来越流行.越来越受欢迎的计算平台之一.Spark的功能涵盖了大数据领域的离线批处理.SQL类处理.流式/实时计算.机器学习.图计算等各种不同类型的计算操作,应用 ...
- C/C++学习指南(语法篇) - 邵发
C/C++学习指南(语法篇),清华大学出出版,作者:邵发 ,ISBN: 9787302419891,一部C/C++基础语法教材,配套100集视频讲解,在线题库.官网:阿发你好 本书简介 一部C/C++ ...
最新文章
- 使用Netty实现的一个简单HTTP服务器
- 最详细的phpmailer的使用方法
- MariaDB Java Client 1.1.0 发布
- 字符串转换成java对象然后通过@RestController返回json对象
- python读取excel列数据库_python中读取excel数据库
- 【Python】字典dict类型转换为列表list类型
- MySql4.1.7 + PHP5 + Apache2.0.52(win2003下测试通过)
- 天联高级版客户端_壹拓网科技关于金万维天联标准版、异速联和天联高级版区别的讲解...
- Invalid nested tag br found, expected closing tag li 错误解决
- 第八篇:稳定性之提升团队潜意识【及时复盘、开关设计】
- CCNA 笔记-11
- html中引入另一个html
- 2015-数学(3)
- oracle会计工作总结,EBS 创建会计科目 小结
- 【matplotlib】饼图+legend()、loc、color位置颜色图例中文显示(一个饼图的例子)
- 使用FTP(IOS FTP客户端开发教程)
- Centos的GPT分区 硬盘超过2T
- postgresql 备份 还原
- 突发!ST再发涨价函!6月1日起全线涨价!
- 张俊红 python_我的朋友张俊红成长之路