Skip to content
PluginStats

@microsoft/eslint-plugin-sdl weekly downloads statistics

By microsoft (224 listings) · npm · ESLint plugins

ESLint plugin focused on common security issues and misconfigurations discoverable during static testing as part of Microsoft Security Development Lifecycle (SDL)

View on npm Fresh · Oct 17, 2026

@microsoft/eslint-plugin-sdl has 299,227 recorded weekly downloads on npm, a decrease of 83.4% over the past 30 days.

It ranks #303 of 2,256 tracked npm listings by weekly downloads.

Over 90 days, weekly downloads changed by -55.9%.

PluginStats has 542 daily observations since Apr 24, 2025; the latest is from Oct 17, 2026.

Weekly downloads
299,227
Official API · Oct 17, 2026
7-day growth
-74.0%
-850.7K weekly downloads
30-day growth
-83.4%
-1.5M weekly downloads
90-day growth
-55.9%
-379.6K weekly downloads
Rank
#303
Among tracked npm listings

About @microsoft/eslint-plugin-sdl

eslint-plugin-sdl

ESLint Plugin focused on common security issues and misconfigurations.

Plugin is intended as a baseline for projects that follow Microsoft Security Development Lifecycle (SDL) and use ESLint to perform Static Analysis Security Testing (SAST).

Installation

or

Configs

Including an ESLint configuration file in your project allows you to customize how ESLint applies rules to your project. You can include the plugin in your configuration file as described in examples for recommended and required configurations.

ESLint will then only enforce rules you specify in the rules section of your configuration file at the severity level you designate. For example:

You can also used the below Shareable Config files using flat config model as guidelines depending on the type of project.

Plugin is shipped with following Shareable Configs:

• angular - Set of rules for modern Angular applications • angularjs - Set of rules for legacy AngularJS applications • common - Set of rules for common JavaScript applications • electron - Set of rules for Electron applications • node - Set of rules for Node.js applications • react - Set of rules for ReactJS applications • recommended - SDL Recommended rules for all applications • required - SDL Required rules for all applications • typescript - Set of rules for TypeScript applications

Rules

Where possible, we leverage existing rules from ESLint and community plugins such as react, typescript-eslint or security.

We also implemented several custom rules where we did not find sufficient alternative in the community.

| Name | Description |

| no-caller | Bans usage of deprecated functions arguments.caller() and arguments.callee that could potentially allow access to call stack. | | no-delete-var | Bans usage of operator delete on variables as it can lead to unexpected behavior. | | no-eval | Bans usage of eval() that allows code execution from string argument. | | no-implied-eval | Bans usage of setTimeout(), setInterval() and execScript(). These functions are similar to eval() and prone to code execution. | | no-new-func | Bans calling new Function() as it's similar to eval() and prone to code execution. | | node/no-deprecated-api | Bans usage of deprecated APIs in Node. | | @microsoft/sdl/no-angular-bypass-sanitizer | Calls to bypassSecurityTrustHtml, bypassSecurityTrustScript and similar methods bypass DomSanitizer in Angular and need to be reviewed. | | @microsoft/sdl/no-angularjs-bypass-sce | Calls to $sceProvider.enabled(false), $sceDelegate.trustAs(), $sce.trustAs() and relevant shorthand methods (e.g. trustAsHtml or trustAsJs) bypass Strict Contextual Escaping (SCE) in AngularJS and need to be reviewed. | | @microsoft/sdl/no-angularjs-enable-svg | Calls to $sanitizeProvider.enableSvg(true) increase attack surface of the application by enabling SVG support in AngularJS sanitizer and need to be reviewed. | | @microsoft/sdl/no-angularjs-sanitization-whitelist | Calls to $compileProvider.aHrefSanitizationWhitelist or $compileProvider.imgSrcSanitizationWhitelist configure whitelists in AngularJS sanitizer and need to be reviewed. | | @microsoft/sdl/no-cookies | HTTP cookies are an old client-side storage mechanism with inherent risks and limitations. Use Web Storage, IndexedDB or other modern methods instead. | | @microsoft/sdl/no-document-domain | Writes to document.domain property must be reviewed to avoid bypass of same-origin checks. Usage of top level domains such as azurewebsites.net is strictly prohibited. | | @microsoft/sdl/no-document-write | Calls to document.write or document.writeln manipulate DOM directly without any sanitization and should be avoided. Use document.createElement() or similar methods instead. | | @microsoft/sdl/no-electron-node-integration | Node.js Integration must not be enabled in any renderer that loads remote content to avoid remote code execution attacks. | | @microsoft/sdl/no-html-method | Direct calls to method html() often (e.g. in jQuery framework) manipulate DOM without any sanitization and should be avoided. Use document.createElement() or similar methods instead. | | @microsoft/sdl/no-inner-html | Assignments to innerHTML or outerHTML properties manipulate DOM directly without any sanitization and should be avoided. Use document.createElement() or similar methods instead. | | @microsoft/sdl/no-insecure-url | Insecure protocols such as HTTP or FTP should be replaced by their encrypted counterparts (HTTPS, FTPS) to avoid sending potentially sensitive data over untrusted networks in plaintext. | | @microsoft/sdl/no-msapp-exec-unsafe | Calls to MSApp.execUnsafeLocalFunction()>) bypass script injection validation and should be avoided. | | @microsoft/sdl/no-postmessage-star-origin | Always provide specific target origin, not \* when sending data to other windows using postMessage to avoid data leakage outside of trust boundary. | | @microsoft/sdl/no-unsafe-alloc | When calling Buffer.allocUnsafe and Buffer.allocUnsafeSlow, the allocated memory is not wiped-out and can contain old, potentially sensitive data. | | @microsoft/sdl/no-winjs-html-unsafe | Calls to WinJS.Utilities.setInnerHTMLUnsafe()>) and similar methods do not perform any input validation and should be avoided. Use WinJS.Utilities.setInnerHTML()>) instead. | | react/iframe-missing-sandbox | The sandbox attribute enables an extra set of restrictions for the content in the iframe and should always be specified. | | react/no-danger | Bans usage of dangerouslySetInnerHTML property in React as it allows passing unsanitized HTML in DOM. | | @typescript-eslint/no-implied-eval | Similar to built-in ESLint rule no-implied-eval. Bans usage of setTimeout(), setInterval(), setImmediate(), execScript() or new Function() as they are similar to eval() and allow code execution from string arguments. |

Contributing…

Description from the npm listing.

  • eslint
  • eslintplugin
  • eslint-plugin
  • sdl

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@microsoft/eslint-plugin-sdl weekly downloads on npm, last 90 days: 299,227 weekly downloads as of Oct 17, 2026, -55.9% over 90 days.@microsoft/eslint-plugin-sdlWeekly downloads on npm · Last 90 days299,227downloads / week-55.9% over 90 days0500K1M1.5M2M2.5MJul 19Aug 3Aug 18Sep 2Sep 17Oct 2Oct 17downloads / weekobservedarchived (Internet Archive)no observationsJul 21, 2026 – Oct 17, 2026 · 89 observations · Updated Oc…pluginstats.com
@microsoft/eslint-plugin-sdl weekly downloads on npm, last 90 days: 299,227 weekly downloads as of Oct 17, 2026, -55.9% over 90 days.
PNG SVG

7/30/90-day growth

@microsoft/eslint-plugin-sdl weekly downloads growth on npm: -74.0% over 7 days, -83.4% over 30 days, -55.9% over 90 days.@microsoft/eslint-plugin-sdlWeekly downloads growth on npm299,227downloads / week now7-day growth-850,702 weekly downloads-74.0%30-day growth-1,502,604 weekly downlo…-83.4%90-day growth-379,637 weekly downloads-55.9%Growth vs. nearest observation to each baseline date · Updated Oct 17, 2026pluginstats.com
@microsoft/eslint-plugin-sdl weekly downloads growth on npm: -74.0% over 7 days, -83.4% over 30 days, -55.9% over 90 days.
PNG SVG

Ranking history

@microsoft/eslint-plugin-sdl npm ranking history: currently #303 (by weekly downloads).@microsoft/eslint-plugin-sdlnpm ranking · by weekly downloads · Last 90 days#303current rank#100#150#200#250#300#350Jul 21Aug 5Aug 20Sep 4Sep 19Oct 4Oct 19rankOct 17, 2026 – Oct 19, 2026 · 3 observations · Updated Oct 17, 2026pluginstats.com
@microsoft/eslint-plugin-sdl npm ranking history: currently #303 (by weekly downloads).
PNG SVG

Listing placement

All npm2,256 listings · 113 pages · 1,129 shown · page 16, #3 (overall #303)
All npm: every listing in weekly downloads order
PNG SVG

Listing placement

ESLint plugins253 listings · 13 pages · page 4, #6 (overall #66)
ESLint plugins: every listing in weekly downloads order
PNG SVG

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a log scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (542)
Recent weekly downloads observations for @microsoft/eslint-plugin-sdl
Date (UTC)Weekly downloadsChange vs. previous
299,227-70.6K
369,817-6.5K
376,352-189.6K
565,986-195.3K
761,2910
761,291-178.6K
939,885-210K
1,149,929-245.2K
1,395,139-181.3K
1,576,481-149.7K
1,726,158-141.1K
1,867,252-322.5K
2,189,763-84.6K
2,274,326—

Similar npm ESLint plugins plugins

All 20 @microsoft/eslint-plugin-sdl alternatives

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@microsoft/eslint-plugin-sdl. First seen Oct 16, 2026; last successful collection Oct 19, 2026. See the methodology.