跳到主要内容

安全规则

no-unsanitized

eslint-plugin-no-unsanitized 旨在防止 XSS。它会扫描代码中可能将未净化的用户输入渲染到 DOM 中的危险模式。例如,它会警告你直接将用户输入传递给 innerHTMLdocument.write 或其他可能执行恶意脚本的 API。

// .eslintrc.js

module.exports = {
extends: [
'plugin:no-unsanitized/recommended-legacy',
],
};
规则名称错误级别配置选项描述
no-unsanitized/methoderror-检查 JavaScript 中不安全的 DOM 方法调用(如 insertAdjacentHTML),防止未经消毒的内容被插入页面,以避免 XSS 攻击
no-unsanitized/propertyerror-检查 JavaScript 中不安全的 DOM 属性赋值(如 innerHTMLouterHTML),防止未经消毒的内容被插入页面,以避免 XSS 攻击

RisXSS

eslint-plugin-risxss 是一个专门用于检测和预防 XSS 的 ESLint 插件。它的核心目标是在前端框架(如 React 和 Vue)中,自动识别出可能导致安全漏洞的代码模式。

// .eslintrc.js

module.exports = {
plugin: [
'risxss',
],
rules: {
'risxss/catch-potential-xss-react': 'error',
// 'risxss/catch-potential-xss-vue': 'error',
},
};
规则名称错误级别配置选项描述
risxss/catch-potential-xss-reacterror-用于检测 React 应用中潜在的 XSS 风险,例如对 dangerouslySetInnerHTML 的不安全使用。
risxss/catch-potential-xss-vueerror-用于检测 Vue 应用中潜在的 XSS 风险,例如对 v-html 指令的不安全使用。