nextjs/no-unwanted-polyfillio Correctness
作用
阻止使用不安全的 polyfill.io 域名以及重复的 polyfill。
为什么这不好?
安全风险: 域名 cdn.polyfill.io 和 polyfill.io 在 2024 年的一次供应链攻击中被攻破, 该域名被恶意行为者收购,并开始向网站注入有害代码。 超过 380,000 个网站受到了影响。无论在任何情况下都不应使用这些域名。
性能问题: 对于像 cdnjs.cloudflare.com/polyfill/ 这样的安全替代方案,包含已经随 Next.js 一起提供的 polyfill 会不必要地增加页面体积,从而影响加载性能。
示例
以下是此规则的错误代码示例:
javascript
// 安全风险 - 被攻破的域名
<script src='https://cdn.polyfill.io/v2/polyfill.min.js'></script>
<script src='https://polyfill.io/v3/polyfill.min.js'></script>
// 重复的 polyfill
<script src='https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=Array.prototype.copyWithin'></script>
<script src='https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?features=WeakSet%2CPromise'></script>如何使用
To enable this rule using the config file or in the CLI, you can use:
json
{
"plugins": ["nextjs"],
"rules": {
"nextjs/no-unwanted-polyfillio": "error"
}
}ts
import { defineConfig } from "oxlint";
export default defineConfig({
plugins: ["nextjs"],
rules: {
"nextjs/no-unwanted-polyfillio": "error",
},
});bash
oxlint --deny nextjs/no-unwanted-polyfillio --nextjs-plugin版本
此规则于 v0.2.7 中添加。
