execFile 为什么能减少命令注入风险,是否就完全安全?
解释 execFile 默认不经过 shell 时元字符如何作为普通参数传递,通过参数回显示例验证边界,并讨论 shell:true、选项注入、路径授权、Windows 脚本与运行权限的限制。
Node.js · 安全面试题第 1 页,显示第 1–11 题,共找到 11 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
解释 execFile 默认不经过 shell 时元字符如何作为普通参数传递,通过参数回显示例验证边界,并讨论 shell:true、选项注入、路径授权、Windows 脚本与运行权限的限制。
围绕“spawn 时设置 shell:true 会带来哪些行为变化和代价”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须答出 shell:true 支持管道通配符等 shell 语法但增加注入风险和进程开销。
围绕“CommonJS 模块里的 exports、require、module 等变量是从哪来的”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要解释模块被包装进函数并注入五个参数的编译机制。
围绕“依赖包的 preinstall/postinstall 脚本为何是供应链攻击的常见入口,如何缓解”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明安装期脚本以用户权限执行任意代码的风险及 --ignore-scripts、CI 审查等缓解,不列举具体攻击事件。
围绕“npm audit 报告的漏洞应如何分级处置,audit fix --force 有什么风险”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明按可利用性与依赖类型分级、--force 可能引入 semver major 破坏的风险。
围绕“如何防范 typosquatting 与 dependency confusion 两类依赖混淆攻击”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出 scope 锁定私有 registry、.npmrc 隔离与名称拼写校验的具体措施。
围绕“Node.js 服务的配置为什么推荐通过环境变量注入,如何用 process.env 做带校验与默认值的配置加载”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明配置与代码分离的理由及启动期 fail-fast 校验设计。
围绕“Node.js 通过 server.maxHeadersCount 或 --max-http-header-size”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要说明头部洪泛防护机制与放宽限制的内存风险。
本文说明Node.js HTTP请求处理中必须同时监听req和res的'error'事件的原因:漏监听会造成未处理异常并导致进程崩溃。区分两路错误的典型来源,给出具体处理和安全边界,防止服务因单请求异常退出。
围绕“Node.js 服务管理密钥(数据库密码等)时为什么不能写进代码或镜像,推荐的注入与访问方式是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖必须给出密钥注入途径与防泄漏要点(日志脱敏、不随错误上报)。
围绕“Node.js Buffer.alloc 与 Buffer.allocUnsafe 的安全边界是什么,复用未清零内存”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖要比较清零成本与性能、allocUnsafe 可能暴露旧堆内存,写满前不得外发。