主要观点:早期职业开发者在安全编码实践中常遇困难,GitHub Copilot 可在明智使用时协助编写更安全代码,但指导是关键。
关键信息:2021 年研究发现开发者不注意时 Copilot 生成的代码约 40%有安全漏洞,GitHub 已升级模型并添加实时漏洞过滤器。文中通过 5 个例子展示如何通过清晰提示让 Copilot 协助编写更安全代码,如避免硬编码秘密(用环境变量)、使用参数化查询防止 SQL 注入、输出消毒防止 XSS、安全 DOM 更新防止 XSS、在 Express 应用中强制使用 HTTPS 等。
重要细节:
- 在避免硬编码秘密的例子中,通过使用环境变量代替直接在代码中插入秘密,降低秘密意外暴露的风险。
- 在防止 SQL 注入的例子中,使用参数化查询(如“?”占位符)确保数据库驱动安全处理用户数据,防止恶意输入改变 SQL 命令。
- 在防止 XSS 的例子中,使用
textContent
而不是innerHTML
来安全显示用户输入,防止恶意脚本执行。 - 在强制使用 HTTPS 的例子中,通过检查
req.secure
并在非安全请求时重定向到 HTTPS,确保数据传输加密。
结论:GitHub Copilot 在有指导时是编写安全代码的有价值盟友,能引导生成安全意识代码建议,但它只是辅助工具,需结合自身警惕和其他安全措施,与开发者自身能力结合能更好地构建安全软件。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。