CodeQL 查询帮助 - JavaScript 和 TypeScript¶
请访问以下文章,查看以下查询套件中包含的查询的文档
`
default
`:在 GitHub 上的 CodeQL 代码扫描中默认运行的查询。`
security-extended
`:来自 `default
` 的查询,以及精度和严重程度略低的额外安全查询。`
security-and-quality
`:来自 `default
`、`security-extended
` 的查询,以及额外的可维护性和可靠性查询。
这些查询发布在 CodeQL 查询包 `codeql/javascript-queries
` 中(变更日志,源代码)。
有关可作为构建块用于编写您自己的查询的较短查询,请参阅 CodeQL 代码库中的示例查询。
- 在时态死区访问 let 绑定变量
- 归档解压缩期间的任意文件访问(“Zip Slip”)
- 参数重新定义
- Vue 实例上的箭头方法
- 赋值给常量
- 赋值给导出变量
- 赋值给原始值的属性
- 反向引用进入负向先行断言
- 反向引用优先于捕获组
- 糟糕的 HTML 过滤正则表达式
- 针对凭据传输的 CORS 配置错误
- 调用类似 eval 的 DOM 函数
- 区分大小写的中间件路径
- 敏感信息的明文存储
- 敏感 Cookie 的明文传输
- 敏感信息的明文日志记录
- 客户端 URL 重定向
- 客户端跨站点脚本攻击
- 客户端请求伪造
- 代码注入
- 不可转换类型之间的比较
- 与 NaN 的比较
- 条件注释
- 冲突的函数声明
- 冲突的变量初始化
- 从密码学安全的来源创建有偏差的随机数
- 跨窗口通信,目标来源不受限制
- DOM 文本重新解释为 HTML
- 从用户控制的来源构建数据库查询
- 默认参数引用嵌套函数
- 删除非属性
- 使用未加密的通信通道下载依赖项
- 依赖项不匹配
- 用户控制数据的反序列化
- 直接状态变异
- 禁用 Electron webSecurity
- 禁用 SCE
- 禁用证书验证
- 双重编译
- 双重转义或反转义
- 通过不安全的连接下载敏感文件
- 重复的“if”条件
- 重复的 HTML 元素属性
- 字符类中的重复字符
- 重复的依赖项
- 重复的参数名称
- 重复的属性
- 重复的 switch case
- 重复的变量声明
- 空字符类
- 配置文件中的空密码
- 启用 Electron allowRunningInsecureContent
- 异常文本重新解释为 HTML
- 私有文件的暴露
- 表达式没有效果
- 操作中的表达式注入
- 无法放弃会话
- 出站网络请求中的文件数据
- 硬编码凭据
- 硬编码数据被解释为代码
- 电子邮件生成中的主机头欺骗
- 相同操作数
- 忽略纯数组方法的结果
- 非法调用
- 隐式操作数转换
- 不正确的代码清理
- 包含来自不受信任来源的功能
- 不兼容的依赖项注入
- 不完整的 HTML 属性清理
- 不完整的 URL 方案检查
- 不完整的 URL 子字符串清理
- 不完整的多字符清理
- 主机名的正则表达式不完整
- 不完整的字符串转义或编码
- for 循环方向不一致
- “new” 的使用不一致
- 不正确的后缀检查
- 间接不受控制的命令行
- 无效的参数类型
- 效率低下的正则表达式
- 通过堆栈跟踪泄露信息
- 不安全的 URL 白名单
- 不安全的随机性
- 不安全的临时文件
- 无效的原型值
- 调用非函数
- JWT 缺少密钥或公钥验证
- 日志注入
- 循环边界注入
- 由于移位导致循环迭代跳过
- 格式错误的 id 属性
- 控制语句后的缩进误导
- 悬挂的“else” 的缩进误导
- 比较中缺少“.length”
- 缺少“this” 限定符
- 缺少 CSRF 中间件
- 缺少 await
- 缺少显式依赖项注入
- 缺少导出限定符
- `
postMessage
` 处理程序中缺少来源验证 - 缺少速率限制
- 缺少正则表达式锚点
- 字符串连接中缺少空格
- 缺少变量声明
- 拼写错误的变量名称
- 网络数据写入文件
- switch 语句中缺少 case 标签
- 非线性模式
- 与长度相比,差一位
- 过分宽松的正则表达式范围
- 覆盖的属性
- 配置文件中的密码
- 在不受控制的数据上使用多项式正则表达式
- 潜在的文件系统竞争条件
- 可能不一致的状态更新
- 对 null 或 undefined 的属性访问
- 污染原型的赋值
- 污染原型的函数
- 污染原型的合并调用
- 反射型跨站点脚本攻击
- 正则表达式始终匹配
- 正则表达式注入
- 远程属性注入
- 重复的依赖项注入
- 用自身替换子字符串
- 资源耗尽
- 深度对象遍历导致的资源耗尽
- return 语句赋值给局部变量
- 二阶命令注入
- 自我赋值
- 分号插入
- 没有 SameSite 限制的敏感 Cookie
- 从 GET 请求中读取敏感数据
- 敏感的服务器 Cookie 暴露给客户端
- 服务器崩溃
- 服务器端 URL 重定向
- 服务器端请求伪造
- 从环境变量构建 Shell 命令
- 移位超出范围
- 在构建工件中存储敏感信息
- 存储型跨站点脚本攻击
- 字符串而不是正则表达式
- 多余的尾随参数
- 可疑的方法名称声明
- 语法错误
- 模板对象注入
- 字符串文字中的模板语法
- 通过参数篡改导致的类型混淆
- 未绑定的反向引用
- 未绑定的事件处理程序接收器
- 嵌套运算符的优先级不清楚
- 不受控制的命令行
- 路径表达式中使用的不受控制的数据
- 未知指令
- 正则表达式中无法匹配的插入符
- 正则表达式中无法匹配的美元符号
- 不必要地使用 `
cat
` 进程 - 不需要的防御性代码
- 无法访问的方法重载
- 无法访问的语句
- 从库输入构建的不安全的 HTML
- 从库输入构建的不安全的代码
- 不安全的动态方法访问
- 不安全的自闭合 HTML 标签扩展
- 不安全的 jQuery 插件
- 从库输入构建的不安全的 Shell 命令
- 生命周期方法中的不支持的状态更新
- 未使用的索引变量
- 未使用的循环迭代变量
- 未使用的或未定义的状态属性
- 未使用的变量、导入、函数或类
- 未验证的动态方法调用
- 在 URL 值属性中使用 AngularJS 标记
- 使用已损坏或弱的加密算法
- 使用弱的加密密钥
- 在严格模式下使用调用堆栈自省
- 使用外部控制的格式字符串
- 使用 for-in 推导块
- 使用未完全初始化的对象
- 使用计算量不足的密码哈希
- 使用平台特定的语言特性
- 使用无返回值的函数
- 对局部变量的无用赋值
- 对属性的无用赋值
- 无用的比较测试
- 无用的条件
- 无用的正则表达式字符转义
- 设置器中的无用返回值
- 无用的类型测试
- 用户控制的安全检查绕过
- 变量在使用前未声明
- 空白与运算符优先级矛盾
- with 语句
- 错误地使用“this” 来访问静态方法
- XML 外部实体扩展
- XML 内部实体扩展
- XPath 注入
- 在非生成器函数中使用 yield