CodeSOD:授权日志记录器
Gretchen 的开发团队作为公司收购的一部分被 Initech 收购。Initech 对其成功的软件产品及其开发人才感兴趣。起初,Gretchen 的团队表现优异,被赋予项目自主权。他们可以复用现有代码或重写代码,并自主选择工具,从而取得了积极成果。然而,Gretchen 后来被分配到一个问题频发的项目,该项目充斥着持续的“救火”工作。该项目的代码库存在不良实践,例如不完善的空值处理。该应用程序受限于一个已过时的 NodeJS 版本,该版本不再接收更新。Gretchen 指出缺乏一致的编码规范,且日志记录缺失。即使现有的日志机制也无效,无论消息内容如何,仅打印单词"DEBUG"。该代码在处理 HTTP 请求时,直接将请求体插入数据库而未进行验证。此特定函数表现出犹豫不决,尝试了两种不同的方法来复制请求数据。此外,该系统在许多区域依赖直接 SQL 查询,造成了严重的 SQL 注入漏洞。代码还缺少关键的授权检查,大多数端点完全未受保护。即使是关键的端点,如管理 API,也存在重复版本且未配置任何身份验证。这一情况凸显了该项目在安全性和代码质量方面存在严重缺陷。