用途:这是一条前端安全审查规则,用于在代码审查中识别并消除 eval() 及等价的动态代码执行,防止用户可控字符串被当作代码运行,从而避免 XSS 类攻击。
主要能力与关注点:eval() 会把任意字符串当代码执行,任何用户输入传入它都是严重安全漏洞;new Function() 同样危险,且 CSP 的 eval 限制无法拦截;setTimeout('code', delay) 与 setInterval('code', delay) 以字符串形式同样会求值,应改用函数引用。此外,解析 JSON 应使用 JSON.parse() 而非 eval()。
使用方式:在代码库中搜索 eval()、new Function(),以及使用字符串参数的 setTimeout/setInterval;将 eval() 替换为安全替代方案——数据用 JSON.parse,动态分派用对象查找,定时器用函数引用。审查脚本、客户端组件、浏览器执行路径时,标记违反该规则的导入、事件处理器、运行时副作用或阻塞操作,并说明如何在浏览器中验证改动。文件还提供说明(解释 eval() 的危险、如何促成 XSS 及各类场景的安全替代)和完整实现细节、代码示例与框架相关指引(见 references/rule.md)。
适用场景:脚本、客户端组件、打包产物及运行时行为的代码审查。
限制:资料未提供该规则的自动化检测工具、集成方式或版本兼容信息,这些暂未提供。