eslint-plugin-secure-coding 2.1.0 → 2.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +91 -12
- package/package.json +10 -4
- package/src/index.d.ts +1 -1
- package/src/index.js +223 -48
- package/src/index.js.map +1 -1
- package/src/rules/{security/database-injection.js → database-injection/index.js} +1 -1
- package/src/rules/database-injection/index.js.map +1 -0
- package/src/rules/{security/detect-child-process.js → detect-child-process/index.js} +1 -1
- package/src/rules/detect-child-process/index.js.map +1 -0
- package/src/rules/{security/detect-eval-with-expression.js → detect-eval-with-expression/index.js} +1 -1
- package/src/rules/detect-eval-with-expression/index.js.map +1 -0
- package/src/rules/detect-mixed-content/index.d.ts +8 -0
- package/src/rules/detect-mixed-content/index.js +45 -0
- package/src/rules/detect-mixed-content/index.js.map +1 -0
- package/src/rules/{security/detect-non-literal-fs-filename.js → detect-non-literal-fs-filename/index.js} +1 -1
- package/src/rules/detect-non-literal-fs-filename/index.js.map +1 -0
- package/src/rules/{security/detect-non-literal-regexp.js → detect-non-literal-regexp/index.js} +23 -6
- package/src/rules/detect-non-literal-regexp/index.js.map +1 -0
- package/src/rules/{security/detect-object-injection.js → detect-object-injection/index.js} +3 -1
- package/src/rules/detect-object-injection/index.js.map +1 -0
- package/src/rules/detect-suspicious-dependencies/index.d.ts +8 -0
- package/src/rules/detect-suspicious-dependencies/index.js +72 -0
- package/src/rules/detect-suspicious-dependencies/index.js.map +1 -0
- package/src/rules/detect-weak-password-validation/index.d.ts +6 -0
- package/src/rules/detect-weak-password-validation/index.js +59 -0
- package/src/rules/detect-weak-password-validation/index.js.map +1 -0
- package/src/rules/no-allow-arbitrary-loads/index.d.ts +8 -0
- package/src/rules/no-allow-arbitrary-loads/index.js +48 -0
- package/src/rules/no-allow-arbitrary-loads/index.js.map +1 -0
- package/src/rules/no-arbitrary-file-access/index.d.ts +6 -0
- package/src/rules/no-arbitrary-file-access/index.js +63 -0
- package/src/rules/no-arbitrary-file-access/index.js.map +1 -0
- package/src/rules/{security/no-buffer-overread.js → no-buffer-overread/index.js} +43 -5
- package/src/rules/no-buffer-overread/index.js.map +1 -0
- package/src/rules/{security/no-clickjacking.js → no-clickjacking/index.js} +23 -9
- package/src/rules/no-clickjacking/index.js.map +1 -0
- package/src/rules/no-client-side-auth-logic/index.d.ts +6 -0
- package/src/rules/no-client-side-auth-logic/index.js +70 -0
- package/src/rules/no-client-side-auth-logic/index.js.map +1 -0
- package/src/rules/no-credentials-in-query-params/index.d.ts +8 -0
- package/src/rules/no-credentials-in-query-params/index.js +58 -0
- package/src/rules/no-credentials-in-query-params/index.js.map +1 -0
- package/src/rules/no-credentials-in-storage-api/index.d.ts +6 -0
- package/src/rules/no-credentials-in-storage-api/index.js +55 -0
- package/src/rules/no-credentials-in-storage-api/index.js.map +1 -0
- package/src/rules/no-data-in-temp-storage/index.d.ts +6 -0
- package/src/rules/no-data-in-temp-storage/index.js +65 -0
- package/src/rules/no-data-in-temp-storage/index.js.map +1 -0
- package/src/rules/no-debug-code-in-production/index.d.ts +8 -0
- package/src/rules/no-debug-code-in-production/index.js +52 -0
- package/src/rules/no-debug-code-in-production/index.js.map +1 -0
- package/src/rules/{security/no-directive-injection.js → no-directive-injection/index.js} +17 -9
- package/src/rules/no-directive-injection/index.js.map +1 -0
- package/src/rules/no-disabled-certificate-validation/index.d.ts +6 -0
- package/src/rules/no-disabled-certificate-validation/index.js +62 -0
- package/src/rules/no-disabled-certificate-validation/index.js.map +1 -0
- package/src/rules/{security/no-document-cookie.js → no-document-cookie/index.js} +1 -1
- package/src/rules/no-document-cookie/index.js.map +1 -0
- package/src/rules/no-dynamic-dependency-loading/index.d.ts +8 -0
- package/src/rules/no-dynamic-dependency-loading/index.js +52 -0
- package/src/rules/no-dynamic-dependency-loading/index.js.map +1 -0
- package/src/rules/{security/no-electron-security-issues.js → no-electron-security-issues/index.js} +7 -4
- package/src/rules/no-electron-security-issues/index.js.map +1 -0
- package/src/rules/no-exposed-debug-endpoints/index.d.ts +6 -0
- package/src/rules/no-exposed-debug-endpoints/index.js +63 -0
- package/src/rules/no-exposed-debug-endpoints/index.js.map +1 -0
- package/src/rules/{security/no-exposed-sensitive-data.js → no-exposed-sensitive-data/index.js} +1 -1
- package/src/rules/no-exposed-sensitive-data/index.js.map +1 -0
- package/src/rules/{security/no-format-string-injection.js → no-format-string-injection/index.js} +17 -9
- package/src/rules/no-format-string-injection/index.js.map +1 -0
- package/src/rules/{security/no-graphql-injection.js → no-graphql-injection/index.js} +5 -3
- package/src/rules/no-graphql-injection/index.js.map +1 -0
- package/src/rules/{security/no-hardcoded-credentials.js → no-hardcoded-credentials/index.js} +1 -1
- package/src/rules/no-hardcoded-credentials/index.js.map +1 -0
- package/src/rules/no-hardcoded-session-tokens/index.d.ts +6 -0
- package/src/rules/no-hardcoded-session-tokens/index.js +60 -0
- package/src/rules/no-hardcoded-session-tokens/index.js.map +1 -0
- package/src/rules/no-http-urls/index.d.ts +12 -0
- package/src/rules/no-http-urls/index.js +115 -0
- package/src/rules/no-http-urls/index.js.map +1 -0
- package/src/rules/{security/no-improper-sanitization.js → no-improper-sanitization/index.js} +9 -5
- package/src/rules/no-improper-sanitization/index.js.map +1 -0
- package/src/rules/{security/no-improper-type-validation.js → no-improper-type-validation/index.js} +11 -6
- package/src/rules/no-improper-type-validation/index.js.map +1 -0
- package/src/rules/{security/no-insecure-comparison.js → no-insecure-comparison/index.js} +1 -1
- package/src/rules/no-insecure-comparison/index.js.map +1 -0
- package/src/rules/{security/no-insecure-cookie-settings.js → no-insecure-cookie-settings/index.js} +1 -1
- package/src/rules/no-insecure-cookie-settings/index.js.map +1 -0
- package/src/rules/{security/no-insecure-jwt.js → no-insecure-jwt/index.js} +24 -5
- package/src/rules/no-insecure-jwt/index.js.map +1 -0
- package/src/rules/{security/no-insecure-redirects.js → no-insecure-redirects/index.js} +3 -1
- package/src/rules/no-insecure-redirects/index.js.map +1 -0
- package/src/rules/no-insecure-websocket/index.d.ts +6 -0
- package/src/rules/no-insecure-websocket/index.js +62 -0
- package/src/rules/no-insecure-websocket/index.js.map +1 -0
- package/src/rules/{security/no-insufficient-postmessage-validation.js → no-insufficient-postmessage-validation/index.js} +7 -4
- package/src/rules/no-insufficient-postmessage-validation/index.js.map +1 -0
- package/src/rules/{security/no-insufficient-random.js → no-insufficient-random/index.js} +1 -1
- package/src/rules/no-insufficient-random/index.js.map +1 -0
- package/src/rules/{security/no-ldap-injection.js → no-ldap-injection/index.js} +15 -8
- package/src/rules/no-ldap-injection/index.js.map +1 -0
- package/src/rules/{security/no-missing-authentication.js → no-missing-authentication/index.js} +13 -1
- package/src/rules/no-missing-authentication/index.js.map +1 -0
- package/src/rules/{security/no-missing-cors-check.js → no-missing-cors-check/index.js} +1 -52
- package/src/rules/no-missing-cors-check/index.js.map +1 -0
- package/src/rules/{security/no-missing-csrf-protection.js → no-missing-csrf-protection/index.js} +1 -1
- package/src/rules/no-missing-csrf-protection/index.js.map +1 -0
- package/src/rules/{security/no-missing-security-headers.js → no-missing-security-headers/index.js} +1 -1
- package/src/rules/no-missing-security-headers/index.js.map +1 -0
- package/src/rules/no-password-in-url/index.d.ts +8 -0
- package/src/rules/no-password-in-url/index.js +56 -0
- package/src/rules/no-password-in-url/index.js.map +1 -0
- package/src/rules/no-permissive-cors/index.d.ts +8 -0
- package/src/rules/no-permissive-cors/index.js +65 -0
- package/src/rules/no-permissive-cors/index.js.map +1 -0
- package/src/rules/no-pii-in-logs/index.d.ts +8 -0
- package/src/rules/no-pii-in-logs/index.js +72 -0
- package/src/rules/no-pii-in-logs/index.js.map +1 -0
- package/src/rules/no-postmessage-origin-wildcard/index.d.ts +8 -0
- package/src/rules/no-postmessage-origin-wildcard/index.js +58 -0
- package/src/rules/no-postmessage-origin-wildcard/index.js.map +1 -0
- package/src/rules/{security/no-privilege-escalation.js → no-privilege-escalation/index.js} +3 -35
- package/src/rules/no-privilege-escalation/index.js.map +1 -0
- package/src/rules/{security/no-redos-vulnerable-regex.js → no-redos-vulnerable-regex/index.js} +1 -1
- package/src/rules/no-redos-vulnerable-regex/index.js.map +1 -0
- package/src/rules/{security/no-sensitive-data-exposure.js → no-sensitive-data-exposure/index.js} +1 -1
- package/src/rules/no-sensitive-data-exposure/index.js.map +1 -0
- package/src/rules/no-sensitive-data-in-analytics/index.d.ts +8 -0
- package/src/rules/no-sensitive-data-in-analytics/index.js +63 -0
- package/src/rules/no-sensitive-data-in-analytics/index.js.map +1 -0
- package/src/rules/no-sensitive-data-in-cache/index.d.ts +8 -0
- package/src/rules/no-sensitive-data-in-cache/index.js +53 -0
- package/src/rules/no-sensitive-data-in-cache/index.js.map +1 -0
- package/src/rules/{security/no-sql-injection.js → no-sql-injection/index.js} +5 -1
- package/src/rules/no-sql-injection/index.js.map +1 -0
- package/src/rules/{security/no-timing-attack.js → no-timing-attack/index.js} +1 -1
- package/src/rules/no-timing-attack/index.js.map +1 -0
- package/src/rules/{security/no-toctou-vulnerability.js → no-toctou-vulnerability/index.js} +1 -1
- package/src/rules/no-toctou-vulnerability/index.js.map +1 -0
- package/src/rules/no-tracking-without-consent/index.d.ts +6 -0
- package/src/rules/no-tracking-without-consent/index.js +68 -0
- package/src/rules/no-tracking-without-consent/index.js.map +1 -0
- package/src/rules/{security/no-unchecked-loop-condition.js → no-unchecked-loop-condition/index.js} +25 -13
- package/src/rules/no-unchecked-loop-condition/index.js.map +1 -0
- package/src/rules/no-unencrypted-local-storage/index.d.ts +8 -0
- package/src/rules/no-unencrypted-local-storage/index.js +63 -0
- package/src/rules/no-unencrypted-local-storage/index.js.map +1 -0
- package/src/rules/{security/no-unencrypted-transmission.js → no-unencrypted-transmission/index.js} +1 -1
- package/src/rules/no-unencrypted-transmission/index.js.map +1 -0
- package/src/rules/{security/no-unescaped-url-parameter.js → no-unescaped-url-parameter/index.js} +1 -1
- package/src/rules/no-unescaped-url-parameter/index.js.map +1 -0
- package/src/rules/{security/no-unlimited-resource-allocation.js → no-unlimited-resource-allocation/index.js} +29 -62
- package/src/rules/no-unlimited-resource-allocation/index.js.map +1 -0
- package/src/rules/{security/no-unsafe-deserialization.js → no-unsafe-deserialization/index.js} +3 -2
- package/src/rules/no-unsafe-deserialization/index.js.map +1 -0
- package/src/rules/{security/no-unsafe-dynamic-require.js → no-unsafe-dynamic-require/index.js} +1 -1
- package/src/rules/no-unsafe-dynamic-require/index.js.map +1 -0
- package/src/rules/{security/no-unsafe-regex-construction.js → no-unsafe-regex-construction/index.js} +1 -1
- package/src/rules/no-unsafe-regex-construction/index.js.map +1 -0
- package/src/rules/{security/no-unsanitized-html.js → no-unsanitized-html/index.js} +14 -83
- package/src/rules/no-unsanitized-html/index.js.map +1 -0
- package/src/rules/no-unvalidated-deeplinks/index.d.ts +6 -0
- package/src/rules/no-unvalidated-deeplinks/index.js +63 -0
- package/src/rules/no-unvalidated-deeplinks/index.js.map +1 -0
- package/src/rules/{security/no-unvalidated-user-input.js → no-unvalidated-user-input/index.js} +1 -1
- package/src/rules/no-unvalidated-user-input/index.js.map +1 -0
- package/src/rules/no-verbose-error-messages/index.d.ts +8 -0
- package/src/rules/no-verbose-error-messages/index.js +68 -0
- package/src/rules/no-verbose-error-messages/index.js.map +1 -0
- package/src/rules/{security/no-weak-crypto.js → no-weak-crypto/index.js} +1 -1
- package/src/rules/no-weak-crypto/index.js.map +1 -0
- package/src/rules/{security/no-weak-password-recovery.js → no-weak-password-recovery/index.js} +21 -8
- package/src/rules/no-weak-password-recovery/index.js.map +1 -0
- package/src/rules/{security/no-xpath-injection.js → no-xpath-injection/index.js} +3 -2
- package/src/rules/no-xpath-injection/index.js.map +1 -0
- package/src/rules/{security/no-xxe-injection.js → no-xxe-injection/index.js} +2 -5
- package/src/rules/no-xxe-injection/index.js.map +1 -0
- package/src/rules/{security/no-zip-slip.js → no-zip-slip/index.js} +1 -1
- package/src/rules/no-zip-slip/index.js.map +1 -0
- package/src/rules/require-backend-authorization/index.d.ts +6 -0
- package/src/rules/require-backend-authorization/index.js +61 -0
- package/src/rules/require-backend-authorization/index.js.map +1 -0
- package/src/rules/require-code-minification/index.d.ts +8 -0
- package/src/rules/require-code-minification/index.js +48 -0
- package/src/rules/require-code-minification/index.js.map +1 -0
- package/src/rules/require-csp-headers/index.d.ts +6 -0
- package/src/rules/require-csp-headers/index.js +65 -0
- package/src/rules/require-csp-headers/index.js.map +1 -0
- package/src/rules/require-data-minimization/index.d.ts +8 -0
- package/src/rules/require-data-minimization/index.js +54 -0
- package/src/rules/require-data-minimization/index.js.map +1 -0
- package/src/rules/require-dependency-integrity/index.d.ts +6 -0
- package/src/rules/require-dependency-integrity/index.js +65 -0
- package/src/rules/require-dependency-integrity/index.js.map +1 -0
- package/src/rules/require-https-only/index.d.ts +8 -0
- package/src/rules/require-https-only/index.js +64 -0
- package/src/rules/require-https-only/index.js.map +1 -0
- package/src/rules/require-mime-type-validation/index.d.ts +6 -0
- package/src/rules/require-mime-type-validation/index.js +67 -0
- package/src/rules/require-mime-type-validation/index.js.map +1 -0
- package/src/rules/require-network-timeout/index.d.ts +8 -0
- package/src/rules/require-network-timeout/index.js +51 -0
- package/src/rules/require-network-timeout/index.js.map +1 -0
- package/src/rules/require-package-lock/index.d.ts +8 -0
- package/src/rules/require-package-lock/index.js +64 -0
- package/src/rules/require-package-lock/index.js.map +1 -0
- package/src/rules/require-secure-credential-storage/index.d.ts +8 -0
- package/src/rules/require-secure-credential-storage/index.js +51 -0
- package/src/rules/require-secure-credential-storage/index.js.map +1 -0
- package/src/rules/require-secure-defaults/index.d.ts +8 -0
- package/src/rules/require-secure-defaults/index.js +48 -0
- package/src/rules/require-secure-defaults/index.js.map +1 -0
- package/src/rules/require-secure-deletion/index.d.ts +8 -0
- package/src/rules/require-secure-deletion/index.js +45 -0
- package/src/rules/require-secure-deletion/index.js.map +1 -0
- package/src/rules/require-storage-encryption/index.d.ts +8 -0
- package/src/rules/require-storage-encryption/index.js +51 -0
- package/src/rules/require-storage-encryption/index.js.map +1 -0
- package/src/rules/require-url-validation/index.d.ts +6 -0
- package/src/rules/require-url-validation/index.js +73 -0
- package/src/rules/require-url-validation/index.js.map +1 -0
- package/src/types/index.d.ts +48 -48
- package/src/rules/security/database-injection.js.map +0 -1
- package/src/rules/security/detect-child-process.js.map +0 -1
- package/src/rules/security/detect-eval-with-expression.js.map +0 -1
- package/src/rules/security/detect-non-literal-fs-filename.js.map +0 -1
- package/src/rules/security/detect-non-literal-regexp.js.map +0 -1
- package/src/rules/security/detect-object-injection.js.map +0 -1
- package/src/rules/security/no-buffer-overread.js.map +0 -1
- package/src/rules/security/no-clickjacking.js.map +0 -1
- package/src/rules/security/no-directive-injection.js.map +0 -1
- package/src/rules/security/no-document-cookie.js.map +0 -1
- package/src/rules/security/no-electron-security-issues.js.map +0 -1
- package/src/rules/security/no-exposed-sensitive-data.js.map +0 -1
- package/src/rules/security/no-format-string-injection.js.map +0 -1
- package/src/rules/security/no-graphql-injection.js.map +0 -1
- package/src/rules/security/no-hardcoded-credentials.js.map +0 -1
- package/src/rules/security/no-improper-sanitization.js.map +0 -1
- package/src/rules/security/no-improper-type-validation.js.map +0 -1
- package/src/rules/security/no-insecure-comparison.js.map +0 -1
- package/src/rules/security/no-insecure-cookie-settings.js.map +0 -1
- package/src/rules/security/no-insecure-jwt.js.map +0 -1
- package/src/rules/security/no-insecure-redirects.js.map +0 -1
- package/src/rules/security/no-insufficient-postmessage-validation.js.map +0 -1
- package/src/rules/security/no-insufficient-random.js.map +0 -1
- package/src/rules/security/no-ldap-injection.js.map +0 -1
- package/src/rules/security/no-missing-authentication.js.map +0 -1
- package/src/rules/security/no-missing-cors-check.js.map +0 -1
- package/src/rules/security/no-missing-csrf-protection.js.map +0 -1
- package/src/rules/security/no-missing-security-headers.js.map +0 -1
- package/src/rules/security/no-privilege-escalation.js.map +0 -1
- package/src/rules/security/no-redos-vulnerable-regex.js.map +0 -1
- package/src/rules/security/no-sensitive-data-exposure.js.map +0 -1
- package/src/rules/security/no-sql-injection.js.map +0 -1
- package/src/rules/security/no-timing-attack.js.map +0 -1
- package/src/rules/security/no-toctou-vulnerability.js.map +0 -1
- package/src/rules/security/no-unchecked-loop-condition.js.map +0 -1
- package/src/rules/security/no-unencrypted-transmission.js.map +0 -1
- package/src/rules/security/no-unescaped-url-parameter.js.map +0 -1
- package/src/rules/security/no-unlimited-resource-allocation.js.map +0 -1
- package/src/rules/security/no-unsafe-deserialization.js.map +0 -1
- package/src/rules/security/no-unsafe-dynamic-require.js.map +0 -1
- package/src/rules/security/no-unsafe-regex-construction.js.map +0 -1
- package/src/rules/security/no-unsanitized-html.js.map +0 -1
- package/src/rules/security/no-unvalidated-user-input.js.map +0 -1
- package/src/rules/security/no-weak-crypto.js.map +0 -1
- package/src/rules/security/no-weak-password-recovery.js.map +0 -1
- package/src/rules/security/no-xpath-injection.js.map +0 -1
- package/src/rules/security/no-xxe-injection.js.map +0 -1
- package/src/rules/security/no-zip-slip.js.map +0 -1
- /package/src/rules/{security/database-injection.d.ts → database-injection/index.d.ts} +0 -0
- /package/src/rules/{security/detect-child-process.d.ts → detect-child-process/index.d.ts} +0 -0
- /package/src/rules/{security/detect-eval-with-expression.d.ts → detect-eval-with-expression/index.d.ts} +0 -0
- /package/src/rules/{security/detect-non-literal-fs-filename.d.ts → detect-non-literal-fs-filename/index.d.ts} +0 -0
- /package/src/rules/{security/detect-non-literal-regexp.d.ts → detect-non-literal-regexp/index.d.ts} +0 -0
- /package/src/rules/{security/detect-object-injection.d.ts → detect-object-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-buffer-overread.d.ts → no-buffer-overread/index.d.ts} +0 -0
- /package/src/rules/{security/no-clickjacking.d.ts → no-clickjacking/index.d.ts} +0 -0
- /package/src/rules/{security/no-directive-injection.d.ts → no-directive-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-document-cookie.d.ts → no-document-cookie/index.d.ts} +0 -0
- /package/src/rules/{security/no-electron-security-issues.d.ts → no-electron-security-issues/index.d.ts} +0 -0
- /package/src/rules/{security/no-exposed-sensitive-data.d.ts → no-exposed-sensitive-data/index.d.ts} +0 -0
- /package/src/rules/{security/no-format-string-injection.d.ts → no-format-string-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-graphql-injection.d.ts → no-graphql-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-hardcoded-credentials.d.ts → no-hardcoded-credentials/index.d.ts} +0 -0
- /package/src/rules/{security/no-improper-sanitization.d.ts → no-improper-sanitization/index.d.ts} +0 -0
- /package/src/rules/{security/no-improper-type-validation.d.ts → no-improper-type-validation/index.d.ts} +0 -0
- /package/src/rules/{security/no-insecure-comparison.d.ts → no-insecure-comparison/index.d.ts} +0 -0
- /package/src/rules/{security/no-insecure-cookie-settings.d.ts → no-insecure-cookie-settings/index.d.ts} +0 -0
- /package/src/rules/{security/no-insecure-jwt.d.ts → no-insecure-jwt/index.d.ts} +0 -0
- /package/src/rules/{security/no-insecure-redirects.d.ts → no-insecure-redirects/index.d.ts} +0 -0
- /package/src/rules/{security/no-insufficient-postmessage-validation.d.ts → no-insufficient-postmessage-validation/index.d.ts} +0 -0
- /package/src/rules/{security/no-insufficient-random.d.ts → no-insufficient-random/index.d.ts} +0 -0
- /package/src/rules/{security/no-ldap-injection.d.ts → no-ldap-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-missing-authentication.d.ts → no-missing-authentication/index.d.ts} +0 -0
- /package/src/rules/{security/no-missing-cors-check.d.ts → no-missing-cors-check/index.d.ts} +0 -0
- /package/src/rules/{security/no-missing-csrf-protection.d.ts → no-missing-csrf-protection/index.d.ts} +0 -0
- /package/src/rules/{security/no-missing-security-headers.d.ts → no-missing-security-headers/index.d.ts} +0 -0
- /package/src/rules/{security/no-privilege-escalation.d.ts → no-privilege-escalation/index.d.ts} +0 -0
- /package/src/rules/{security/no-redos-vulnerable-regex.d.ts → no-redos-vulnerable-regex/index.d.ts} +0 -0
- /package/src/rules/{security/no-sensitive-data-exposure.d.ts → no-sensitive-data-exposure/index.d.ts} +0 -0
- /package/src/rules/{security/no-sql-injection.d.ts → no-sql-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-timing-attack.d.ts → no-timing-attack/index.d.ts} +0 -0
- /package/src/rules/{security/no-toctou-vulnerability.d.ts → no-toctou-vulnerability/index.d.ts} +0 -0
- /package/src/rules/{security/no-unchecked-loop-condition.d.ts → no-unchecked-loop-condition/index.d.ts} +0 -0
- /package/src/rules/{security/no-unencrypted-transmission.d.ts → no-unencrypted-transmission/index.d.ts} +0 -0
- /package/src/rules/{security/no-unescaped-url-parameter.d.ts → no-unescaped-url-parameter/index.d.ts} +0 -0
- /package/src/rules/{security/no-unlimited-resource-allocation.d.ts → no-unlimited-resource-allocation/index.d.ts} +0 -0
- /package/src/rules/{security/no-unsafe-deserialization.d.ts → no-unsafe-deserialization/index.d.ts} +0 -0
- /package/src/rules/{security/no-unsafe-dynamic-require.d.ts → no-unsafe-dynamic-require/index.d.ts} +0 -0
- /package/src/rules/{security/no-unsafe-regex-construction.d.ts → no-unsafe-regex-construction/index.d.ts} +0 -0
- /package/src/rules/{security/no-unsanitized-html.d.ts → no-unsanitized-html/index.d.ts} +0 -0
- /package/src/rules/{security/no-unvalidated-user-input.d.ts → no-unvalidated-user-input/index.d.ts} +0 -0
- /package/src/rules/{security/no-weak-crypto.d.ts → no-weak-crypto/index.d.ts} +0 -0
- /package/src/rules/{security/no-weak-password-recovery.d.ts → no-weak-password-recovery/index.d.ts} +0 -0
- /package/src/rules/{security/no-xpath-injection.d.ts → no-xpath-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-xxe-injection.d.ts → no-xxe-injection/index.d.ts} +0 -0
- /package/src/rules/{security/no-zip-slip.d.ts → no-zip-slip/index.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -6,15 +6,16 @@
|
|
|
6
6
|
[](https://www.npmjs.com/package/eslint-plugin-secure-coding)
|
|
7
7
|
[](https://opensource.org/licenses/MIT)
|
|
8
8
|
|
|
9
|
-
> A
|
|
9
|
+
> **A complete security standard:** This plugin provides **full mitigation** for both **OWASP Top 10 Web (2021)** AND **OWASP Mobile Top 10 (2024)**.
|
|
10
|
+
> With **89 rules** mapped to CWE and CVSS, it transforms your linter into an enterprise-grade security auditor that AI assistants can understand and fix.
|
|
10
11
|
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
## 💡 What you get
|
|
14
15
|
|
|
15
|
-
- **Feature-based coverage:**
|
|
16
|
+
- **Feature-based coverage:** 89 rules grouped by attack surface (injection, crypto, auth, cookies, headers, mobile security, resource limits, platform specifics).
|
|
16
17
|
- **LLM-optimized & MCP-ready:** Structured 2-line messages with CWE + OWASP + CVSS + concrete fixes so humans _and_ AI auto-fixers stay aligned.
|
|
17
|
-
- **Standards aligned:** OWASP Top 10, CWE tagging, CVSS scoring in every finding for compliance mapping.
|
|
18
|
+
- **Standards aligned:** OWASP Top 10 Web + Mobile, CWE tagging, CVSS scoring in every finding for compliance mapping.
|
|
18
19
|
- **Tiered presets:** `recommended`, `strict`, `owasp-top-10` for fast policy rollout.
|
|
19
20
|
- **False-positive reduction:** Sanitizer awareness, annotations, ORM patterns, and safe-library detection keep noise low for org rollouts.
|
|
20
21
|
|
|
@@ -29,7 +30,7 @@ src/api.ts
|
|
|
29
30
|
**Each message includes:**
|
|
30
31
|
|
|
31
32
|
- 🔒 **CWE reference** - vulnerability classification
|
|
32
|
-
- 📋 **OWASP category** - Top 10 mapping (
|
|
33
|
+
- 📋 **OWASP category** - Top 10 mapping (Web or Mobile)
|
|
33
34
|
- 📊 **CVSS score** - severity rating (0.0-10.0)
|
|
34
35
|
- 🏢 **Compliance tags** - affected frameworks (SOC2, PCI-DSS, HIPAA)
|
|
35
36
|
- ✅ **Fix instruction** - exact code to write
|
|
@@ -37,7 +38,41 @@ src/api.ts
|
|
|
37
38
|
|
|
38
39
|
---
|
|
39
40
|
|
|
40
|
-
##
|
|
41
|
+
## 📊 OWASP Coverage Matrix
|
|
42
|
+
|
|
43
|
+
### OWASP Top 10 Web 2021
|
|
44
|
+
|
|
45
|
+
| Category | Description | Rules |
|
|
46
|
+
| ------------ | ------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
47
|
+
| **A01:2021** | Broken Access Control | `no-privilege-escalation`, `no-missing-authorization`, `no-zip-slip`, `detect-non-literal-fs-filename` |
|
|
48
|
+
| **A02:2021** | Cryptographic Failures | `no-weak-crypto`, `no-http-urls`, `require-https-only`, `no-timing-attack`, `no-insufficient-random`, `no-hardcoded-credentials` |
|
|
49
|
+
| **A03:2021** | Injection | `no-sql-injection`, `database-injection`, `detect-eval-with-expression`, `detect-child-process`, `no-xxe-injection`, `no-xpath-injection`, `no-ldap-injection`, `no-unsanitized-html` |
|
|
50
|
+
| **A04:2021** | Insecure Design | `no-improper-type-validation`, `detect-weak-password-validation` |
|
|
51
|
+
| **A05:2021** | Security Misconfiguration | `no-missing-cors-check`, `no-missing-security-headers`, `no-permissive-cors`, `require-csp-headers` |
|
|
52
|
+
| **A06:2021** | Vulnerable Components | `detect-suspicious-dependencies`, `require-package-lock`, `require-dependency-integrity` |
|
|
53
|
+
| **A07:2021** | Auth/Session Failures | `no-missing-authentication`, `no-insecure-cookie-settings`, `no-missing-csrf-protection`, `no-weak-password-recovery` |
|
|
54
|
+
| **A08:2021** | Software/Data Integrity | `no-unsafe-deserialization`, `no-unsafe-dynamic-require` |
|
|
55
|
+
| **A09:2021** | Security Logging | `no-sensitive-data-exposure`, `no-pii-in-logs` |
|
|
56
|
+
| **A10:2021** | SSRF | `no-unvalidated-url-input`, `require-url-validation` |
|
|
57
|
+
|
|
58
|
+
### OWASP Mobile Top 10 2024
|
|
59
|
+
|
|
60
|
+
| Category | Description | Rules |
|
|
61
|
+
| -------- | ------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
62
|
+
| **M1** | Improper Credential Usage | `no-credentials-in-storage-api`, `no-hardcoded-credentials` |
|
|
63
|
+
| **M2** | Inadequate Supply Chain | `detect-suspicious-dependencies`, `require-package-lock`, `require-dependency-integrity` |
|
|
64
|
+
| **M3** | Insecure Authentication | `no-client-side-auth-logic`, `detect-weak-password-validation` |
|
|
65
|
+
| **M4** | Insufficient Input/Output | `no-unvalidated-deeplinks`, `require-mime-type-validation`, `require-url-validation`, `no-arbitrary-file-access` |
|
|
66
|
+
| **M5** | Insecure Communication | `no-allow-arbitrary-loads`, `no-http-urls`, `require-https-only`, `no-disabled-certificate-validation` |
|
|
67
|
+
| **M6** | Inadequate Privacy | `no-pii-in-logs`, `no-tracking-without-consent`, `no-sensitive-data-in-analytics`, `require-data-minimization` |
|
|
68
|
+
| **M7** | Insufficient Binary Protection | `no-debug-code-in-production`, `require-code-minification` |
|
|
69
|
+
| **M8** | Security Misconfiguration | `no-verbose-error-messages`, `require-secure-defaults` |
|
|
70
|
+
| **M9** | Insecure Data Storage | `no-sensitive-data-in-cache`, `no-data-in-temp-storage`, `require-secure-deletion`, `require-storage-encryption`, `no-unencrypted-local-storage` |
|
|
71
|
+
| **M10** | Insufficient Crypto | `no-weak-crypto`, `require-credential-storage` |
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## 🔐 89 Security Rules
|
|
41
76
|
|
|
42
77
|
💼 = Set in `recommended` | ⚠️ = Warns in `recommended` | 🔧 = Auto-fixable | 💡 = Suggestions
|
|
43
78
|
|
|
@@ -57,6 +92,43 @@ src/api.ts
|
|
|
57
92
|
| [no-directive-injection](./docs/rules/no-directive-injection.md) | CWE-94 | A03 | 8.8 | Prevent template directive injection | 💼 | | | |
|
|
58
93
|
| [no-format-string-injection](./docs/rules/no-format-string-injection.md) | CWE-134 | A03 | 9.8 | Prevent format string vulnerabilities | 💼 | | | |
|
|
59
94
|
|
|
95
|
+
### Mobile Security (30 rules)
|
|
96
|
+
|
|
97
|
+
> **Note:** These rules map to OWASP Mobile Top 10 but are **framework-agnostic** and highly effective for general web application security (e.g., preventing PII leaks, insecure communication, and credential misuse).
|
|
98
|
+
|
|
99
|
+
| Rule | CWE | OWASP Mobile | CVSS | Description | 💼 | ⚠️ | 🔧 | 💡 |
|
|
100
|
+
| ---------------------------------------------------------------------------------------- | ------- | ------------ | ---- | ----------------------------------- | --- | --- | --- | --- |
|
|
101
|
+
| [no-http-urls](./docs/rules/no-http-urls.md) | CWE-319 | M5 | 7.5 | Prevent insecure HTTP URLs | 💼 | | | |
|
|
102
|
+
| [no-hardcoded-credentials](./docs/rules/no-hardcoded-credentials.md) | CWE-798 | M1 | 7.5 | Detect hardcoded secrets | 💼 | | 🔧 | 💡 |
|
|
103
|
+
| [no-credentials-in-storage-api](./docs/rules/no-credentials-in-storage-api.md) | CWE-522 | M1 | 7.5 | Prevent credentials in localStorage | 💼 | | | |
|
|
104
|
+
| [no-credentials-in-query-params](./docs/rules/no-credentials-in-query-params.md) | CWE-598 | M1 | 7.5 | Detect credentials in URLs | 💼 | | | |
|
|
105
|
+
| [no-allow-arbitrary-loads](./docs/rules/no-allow-arbitrary-loads.md) | CWE-295 | M5 | 7.5 | Prevent insecure ATS configuration | | | | |
|
|
106
|
+
| [no-disabled-certificate-validation](./docs/rules/no-disabled-certificate-validation.md) | CWE-295 | M5 | 7.5 | Detect disabled cert validation | | | | |
|
|
107
|
+
| [require-https-only](./docs/rules/require-https-only.md) | CWE-319 | M5 | 7.5 | Enforce HTTPS-only connections | 💼 | | | |
|
|
108
|
+
| [require-network-timeout](./docs/rules/require-network-timeout.md) | CWE-400 | M5 | 7.5 | Require network timeouts | | | | |
|
|
109
|
+
| [detect-weak-password-validation](./docs/rules/detect-weak-password-validation.md) | CWE-521 | M3 | 7.5 | Detect weak password requirements | | | | |
|
|
110
|
+
| [no-client-side-auth-logic](./docs/rules/no-client-side-auth-logic.md) | CWE-602 | M3 | 7.5 | Prevent client-side auth | | | | |
|
|
111
|
+
| [no-hardcoded-session-tokens](./docs/rules/no-hardcoded-session-tokens.md) | CWE-798 | M3 | 9.8 | Detect hardcoded session tokens | 💼 | | | |
|
|
112
|
+
| [no-unvalidated-deeplinks](./docs/rules/no-unvalidated-deeplinks.md) | CWE-939 | M4 | 7.5 | Require deeplink validation | 💼 | | | |
|
|
113
|
+
| [require-url-validation](./docs/rules/require-url-validation.md) | CWE-601 | M4 | 7.5 | Require URL validation | | | | |
|
|
114
|
+
| [require-mime-type-validation](./docs/rules/require-mime-type-validation.md) | CWE-434 | M4 | 7.5 | Require MIME type validation | | | | |
|
|
115
|
+
| [no-arbitrary-file-access](./docs/rules/no-arbitrary-file-access.md) | CWE-22 | M4 | 7.5 | Prevent path traversal | | | | |
|
|
116
|
+
| [no-pii-in-logs](./docs/rules/no-pii-in-logs.md) | CWE-532 | M6 | 7.5 | Prevent PII in logs | | ⚠️ | | |
|
|
117
|
+
| [no-tracking-without-consent](./docs/rules/no-tracking-without-consent.md) | CWE-359 | M6 | 7.5 | Require tracking consent | | | | |
|
|
118
|
+
| [no-sensitive-data-in-analytics](./docs/rules/no-sensitive-data-in-analytics.md) | CWE-359 | M6 | 7.5 | Prevent PII in analytics | | | | |
|
|
119
|
+
| [require-data-minimization](./docs/rules/require-data-minimization.md) | CWE-213 | M6 | 7.5 | Identify excessive data collection | | | | |
|
|
120
|
+
| [no-debug-code-in-production](./docs/rules/no-debug-code-in-production.md) | CWE-489 | M7 | 7.5 | Detect debug code | | | | |
|
|
121
|
+
| [require-code-minification](./docs/rules/require-code-minification.md) | CWE-656 | M7 | 7.5 | Require minification config | | | | |
|
|
122
|
+
| [no-verbose-error-messages](./docs/rules/no-verbose-error-messages.md) | CWE-209 | M8 | 7.5 | Prevent stack trace exposure | | ⚠️ | | |
|
|
123
|
+
| [require-secure-defaults](./docs/rules/require-secure-defaults.md) | CWE-276 | M8 | 7.5 | Require secure default configs | | | | |
|
|
124
|
+
| [no-sensitive-data-in-cache](./docs/rules/no-sensitive-data-in-cache.md) | CWE-524 | M9 | 7.5 | Prevent sensitive cache data | | | | |
|
|
125
|
+
| [no-data-in-temp-storage](./docs/rules/no-data-in-temp-storage.md) | CWE-312 | M9 | 7.5 | Prevent sensitive temp data | | | | |
|
|
126
|
+
| [require-secure-deletion](./docs/rules/require-secure-deletion.md) | CWE-459 | M9 | 7.5 | Require secure data deletion | | | | |
|
|
127
|
+
| [require-storage-encryption](./docs/rules/require-storage-encryption.md) | CWE-311 | M9 | 7.5 | Require encrypted storage | | | | |
|
|
128
|
+
| [no-unencrypted-local-storage](./docs/rules/no-unencrypted-local-storage.md) | CWE-312 | M9 | 7.5 | Prevent unencrypted local storage | | | | |
|
|
129
|
+
| [require-credential-storage](./docs/rules/require-credential-storage.md) | CWE-522 | M10 | 7.5 | Require secure credential storage | | | | |
|
|
130
|
+
| [no-exposed-debug-endpoints](./docs/rules/no-exposed-debug-endpoints.md) | CWE-489 | M8 | 7.5 | Prevent exposed debug endpoints | | | | |
|
|
131
|
+
|
|
60
132
|
### Path & File Security (3 rules)
|
|
61
133
|
|
|
62
134
|
| Rule | CWE | OWASP | CVSS | Description | 💼 | ⚠️ | 🔧 | 💡 |
|
|
@@ -174,17 +246,18 @@ npx eslint .
|
|
|
174
246
|
|
|
175
247
|
## 📋 Available Presets (policy tiers)
|
|
176
248
|
|
|
177
|
-
| Preset
|
|
178
|
-
|
|
|
179
|
-
| **`recommended`**
|
|
180
|
-
| **`strict`**
|
|
181
|
-
| **`owasp-top-10`**
|
|
249
|
+
| Preset | Description |
|
|
250
|
+
| ------------------------- | --------------------------------------------------------------- |
|
|
251
|
+
| **`recommended`** | Balanced security for most projects (Web + key Mobile security) |
|
|
252
|
+
| **`strict`** | Maximum security enforcement (all rules as errors) |
|
|
253
|
+
| **`owasp-top-10`** | OWASP Top 10 Web 2021 compliance focused |
|
|
254
|
+
| **`owasp-mobile-top-10`** | OWASP Mobile Top 10 2024 compliance focused |
|
|
182
255
|
|
|
183
256
|
---
|
|
184
257
|
|
|
185
258
|
## 📚 Documentation
|
|
186
259
|
|
|
187
|
-
- **[Rules Reference](./docs/RULES.md)** - Complete list of all
|
|
260
|
+
- **[Rules Reference](./docs/RULES.md)** - Complete list of all 89 rules with configuration options
|
|
188
261
|
|
|
189
262
|
---
|
|
190
263
|
|
|
@@ -219,10 +292,16 @@ export default [
|
|
|
219
292
|
|
|
220
293
|
// Add OWASP Top 10 enforcement for internet-facing apps
|
|
221
294
|
{
|
|
222
|
-
files: ['apps/**'],
|
|
295
|
+
files: ['apps/web/**'],
|
|
223
296
|
...secureCoding.configs['owasp-top-10'],
|
|
224
297
|
},
|
|
225
298
|
|
|
299
|
+
// Add OWASP Mobile Top 10 for mobile/native apps
|
|
300
|
+
{
|
|
301
|
+
files: ['apps/mobile/**'],
|
|
302
|
+
...secureCoding.configs['owasp-mobile-top-10'],
|
|
303
|
+
},
|
|
304
|
+
|
|
226
305
|
// Force strict mode for critical backend services
|
|
227
306
|
{
|
|
228
307
|
files: ['services/payments/**', 'services/auth/**'],
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eslint-plugin-secure-coding",
|
|
3
|
-
"version": "2.1
|
|
4
|
-
"description": "Security-focused ESLint plugin with
|
|
3
|
+
"version": "2.2.1",
|
|
4
|
+
"description": "Security-focused ESLint plugin with 89 AI-parseable rules for detecting and preventing vulnerabilities. OWASP Top 10 2021 + Mobile Top 10 2024 coverage, CWE references, and AI-assisted fix guidance.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
7
7
|
"types": "./src/index.d.ts",
|
|
@@ -69,12 +69,18 @@
|
|
|
69
69
|
"node": ">=18.0.0"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"
|
|
73
|
-
"
|
|
72
|
+
"@interlace/eslint-devkit": "^1.2.1",
|
|
73
|
+
"tslib": "^2.3.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@typescript-eslint/parser": "^8.46.2",
|
|
77
77
|
"@typescript-eslint/rule-tester": "^8.46.2",
|
|
78
|
+
"@vitest/coverage-v8": "^4.0.6",
|
|
78
79
|
"vitest": "^4.0.6"
|
|
80
|
+
},
|
|
81
|
+
"scripts": {
|
|
82
|
+
"test": "vitest run",
|
|
83
|
+
"test:watch": "vitest watch",
|
|
84
|
+
"test:coverage": "vitest run --coverage"
|
|
79
85
|
}
|
|
80
86
|
}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -16,66 +16,116 @@
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.configs = exports.plugin = exports.rules = void 0;
|
|
18
18
|
// Security rules - Injection
|
|
19
|
-
const no_sql_injection_1 = require("./rules/
|
|
20
|
-
const database_injection_1 = require("./rules/
|
|
21
|
-
const detect_eval_with_expression_1 = require("./rules/
|
|
22
|
-
const detect_child_process_1 = require("./rules/
|
|
23
|
-
const no_unsafe_dynamic_require_1 = require("./rules/
|
|
24
|
-
const no_graphql_injection_1 = require("./rules/
|
|
25
|
-
const no_xxe_injection_1 = require("./rules/
|
|
26
|
-
const no_xpath_injection_1 = require("./rules/
|
|
27
|
-
const no_ldap_injection_1 = require("./rules/
|
|
28
|
-
const no_directive_injection_1 = require("./rules/
|
|
29
|
-
const no_format_string_injection_1 = require("./rules/
|
|
19
|
+
const no_sql_injection_1 = require("./rules/no-sql-injection");
|
|
20
|
+
const database_injection_1 = require("./rules/database-injection");
|
|
21
|
+
const detect_eval_with_expression_1 = require("./rules/detect-eval-with-expression");
|
|
22
|
+
const detect_child_process_1 = require("./rules/detect-child-process");
|
|
23
|
+
const no_unsafe_dynamic_require_1 = require("./rules/no-unsafe-dynamic-require");
|
|
24
|
+
const no_graphql_injection_1 = require("./rules/no-graphql-injection");
|
|
25
|
+
const no_xxe_injection_1 = require("./rules/no-xxe-injection");
|
|
26
|
+
const no_xpath_injection_1 = require("./rules/no-xpath-injection");
|
|
27
|
+
const no_ldap_injection_1 = require("./rules/no-ldap-injection");
|
|
28
|
+
const no_directive_injection_1 = require("./rules/no-directive-injection");
|
|
29
|
+
const no_format_string_injection_1 = require("./rules/no-format-string-injection");
|
|
30
30
|
// Security rules - Path & File
|
|
31
|
-
const detect_non_literal_fs_filename_1 = require("./rules/
|
|
32
|
-
const no_zip_slip_1 = require("./rules/
|
|
33
|
-
const no_toctou_vulnerability_1 = require("./rules/
|
|
31
|
+
const detect_non_literal_fs_filename_1 = require("./rules/detect-non-literal-fs-filename");
|
|
32
|
+
const no_zip_slip_1 = require("./rules/no-zip-slip");
|
|
33
|
+
const no_toctou_vulnerability_1 = require("./rules/no-toctou-vulnerability");
|
|
34
34
|
// Security rules - Regex
|
|
35
|
-
const detect_non_literal_regexp_1 = require("./rules/
|
|
36
|
-
const no_redos_vulnerable_regex_1 = require("./rules/
|
|
37
|
-
const no_unsafe_regex_construction_1 = require("./rules/
|
|
35
|
+
const detect_non_literal_regexp_1 = require("./rules/detect-non-literal-regexp");
|
|
36
|
+
const no_redos_vulnerable_regex_1 = require("./rules/no-redos-vulnerable-regex");
|
|
37
|
+
const no_unsafe_regex_construction_1 = require("./rules/no-unsafe-regex-construction");
|
|
38
38
|
// Security rules - Object & Prototype
|
|
39
|
-
const detect_object_injection_1 = require("./rules/
|
|
40
|
-
const no_unsafe_deserialization_1 = require("./rules/
|
|
39
|
+
const detect_object_injection_1 = require("./rules/detect-object-injection");
|
|
40
|
+
const no_unsafe_deserialization_1 = require("./rules/no-unsafe-deserialization");
|
|
41
41
|
// Security rules - Credentials & Crypto
|
|
42
|
-
const no_hardcoded_credentials_1 = require("./rules/
|
|
43
|
-
const no_weak_crypto_1 = require("./rules/
|
|
44
|
-
const no_insufficient_random_1 = require("./rules/
|
|
45
|
-
const no_timing_attack_1 = require("./rules/
|
|
46
|
-
const no_insecure_comparison_1 = require("./rules/
|
|
47
|
-
const no_insecure_jwt_1 = require("./rules/
|
|
42
|
+
const no_hardcoded_credentials_1 = require("./rules/no-hardcoded-credentials");
|
|
43
|
+
const no_weak_crypto_1 = require("./rules/no-weak-crypto");
|
|
44
|
+
const no_insufficient_random_1 = require("./rules/no-insufficient-random");
|
|
45
|
+
const no_timing_attack_1 = require("./rules/no-timing-attack");
|
|
46
|
+
const no_insecure_comparison_1 = require("./rules/no-insecure-comparison");
|
|
47
|
+
const no_insecure_jwt_1 = require("./rules/no-insecure-jwt");
|
|
48
48
|
// Security rules - Input Validation & XSS
|
|
49
|
-
const no_unvalidated_user_input_1 = require("./rules/
|
|
50
|
-
const no_unsanitized_html_1 = require("./rules/
|
|
51
|
-
const no_unescaped_url_parameter_1 = require("./rules/
|
|
52
|
-
const no_improper_sanitization_1 = require("./rules/
|
|
53
|
-
const no_improper_type_validation_1 = require("./rules/
|
|
49
|
+
const no_unvalidated_user_input_1 = require("./rules/no-unvalidated-user-input");
|
|
50
|
+
const no_unsanitized_html_1 = require("./rules/no-unsanitized-html");
|
|
51
|
+
const no_unescaped_url_parameter_1 = require("./rules/no-unescaped-url-parameter");
|
|
52
|
+
const no_improper_sanitization_1 = require("./rules/no-improper-sanitization");
|
|
53
|
+
const no_improper_type_validation_1 = require("./rules/no-improper-type-validation");
|
|
54
54
|
// Security rules - Authentication & Authorization
|
|
55
|
-
const no_missing_authentication_1 = require("./rules/
|
|
56
|
-
const no_privilege_escalation_1 = require("./rules/
|
|
57
|
-
const no_weak_password_recovery_1 = require("./rules/
|
|
55
|
+
const no_missing_authentication_1 = require("./rules/no-missing-authentication");
|
|
56
|
+
const no_privilege_escalation_1 = require("./rules/no-privilege-escalation");
|
|
57
|
+
const no_weak_password_recovery_1 = require("./rules/no-weak-password-recovery");
|
|
58
58
|
// Security rules - Session & Cookies
|
|
59
|
-
const no_insecure_cookie_settings_1 = require("./rules/
|
|
60
|
-
const no_missing_csrf_protection_1 = require("./rules/
|
|
61
|
-
const no_document_cookie_1 = require("./rules/
|
|
59
|
+
const no_insecure_cookie_settings_1 = require("./rules/no-insecure-cookie-settings");
|
|
60
|
+
const no_missing_csrf_protection_1 = require("./rules/no-missing-csrf-protection");
|
|
61
|
+
const no_document_cookie_1 = require("./rules/no-document-cookie");
|
|
62
62
|
// Security rules - Network & Headers
|
|
63
|
-
const no_missing_cors_check_1 = require("./rules/
|
|
64
|
-
const no_missing_security_headers_1 = require("./rules/
|
|
65
|
-
const no_insecure_redirects_1 = require("./rules/
|
|
66
|
-
const no_unencrypted_transmission_1 = require("./rules/
|
|
67
|
-
const no_clickjacking_1 = require("./rules/
|
|
63
|
+
const no_missing_cors_check_1 = require("./rules/no-missing-cors-check");
|
|
64
|
+
const no_missing_security_headers_1 = require("./rules/no-missing-security-headers");
|
|
65
|
+
const no_insecure_redirects_1 = require("./rules/no-insecure-redirects");
|
|
66
|
+
const no_unencrypted_transmission_1 = require("./rules/no-unencrypted-transmission");
|
|
67
|
+
const no_clickjacking_1 = require("./rules/no-clickjacking");
|
|
68
68
|
// Security rules - Data Exposure
|
|
69
|
-
const no_exposed_sensitive_data_1 = require("./rules/
|
|
70
|
-
const no_sensitive_data_exposure_1 = require("./rules/
|
|
69
|
+
const no_exposed_sensitive_data_1 = require("./rules/no-exposed-sensitive-data");
|
|
70
|
+
const no_sensitive_data_exposure_1 = require("./rules/no-sensitive-data-exposure");
|
|
71
71
|
// Security rules - Buffer & Memory
|
|
72
|
-
const no_buffer_overread_1 = require("./rules/
|
|
72
|
+
const no_buffer_overread_1 = require("./rules/no-buffer-overread");
|
|
73
73
|
// Security rules - Resource & DoS
|
|
74
|
-
const no_unlimited_resource_allocation_1 = require("./rules/
|
|
75
|
-
const no_unchecked_loop_condition_1 = require("./rules/
|
|
74
|
+
const no_unlimited_resource_allocation_1 = require("./rules/no-unlimited-resource-allocation");
|
|
75
|
+
const no_unchecked_loop_condition_1 = require("./rules/no-unchecked-loop-condition");
|
|
76
76
|
// Security rules - Platform Specific
|
|
77
|
-
const no_electron_security_issues_1 = require("./rules/
|
|
78
|
-
const no_insufficient_postmessage_validation_1 = require("./rules/
|
|
77
|
+
const no_electron_security_issues_1 = require("./rules/no-electron-security-issues");
|
|
78
|
+
const no_insufficient_postmessage_validation_1 = require("./rules/no-insufficient-postmessage-validation");
|
|
79
|
+
// OWASP Mobile Top 10 2023/2024 - Mobile Security Rules (40 rules)
|
|
80
|
+
// M1: Improper Credential Usage (3 rules)
|
|
81
|
+
const no_credentials_in_storage_api_1 = require("./rules/no-credentials-in-storage-api");
|
|
82
|
+
const no_credentials_in_query_params_1 = require("./rules/no-credentials-in-query-params");
|
|
83
|
+
const require_secure_credential_storage_1 = require("./rules/require-secure-credential-storage");
|
|
84
|
+
// M2: Inadequate Supply Chain Security (4 rules)
|
|
85
|
+
const require_dependency_integrity_1 = require("./rules/require-dependency-integrity");
|
|
86
|
+
const detect_suspicious_dependencies_1 = require("./rules/detect-suspicious-dependencies");
|
|
87
|
+
const no_dynamic_dependency_loading_1 = require("./rules/no-dynamic-dependency-loading");
|
|
88
|
+
const require_package_lock_1 = require("./rules/require-package-lock");
|
|
89
|
+
// M3: Insecure Authentication/Authorization (5 rules)
|
|
90
|
+
const no_client_side_auth_logic_1 = require("./rules/no-client-side-auth-logic");
|
|
91
|
+
const require_backend_authorization_1 = require("./rules/require-backend-authorization");
|
|
92
|
+
const no_hardcoded_session_tokens_1 = require("./rules/no-hardcoded-session-tokens");
|
|
93
|
+
const detect_weak_password_validation_1 = require("./rules/detect-weak-password-validation");
|
|
94
|
+
const no_password_in_url_1 = require("./rules/no-password-in-url");
|
|
95
|
+
// M4: Insufficient Input/Output Validation (6 rules)
|
|
96
|
+
const no_unvalidated_deeplinks_1 = require("./rules/no-unvalidated-deeplinks");
|
|
97
|
+
const require_url_validation_1 = require("./rules/require-url-validation");
|
|
98
|
+
const no_arbitrary_file_access_1 = require("./rules/no-arbitrary-file-access");
|
|
99
|
+
const require_mime_type_validation_1 = require("./rules/require-mime-type-validation");
|
|
100
|
+
const no_postmessage_origin_wildcard_1 = require("./rules/no-postmessage-origin-wildcard");
|
|
101
|
+
const require_csp_headers_1 = require("./rules/require-csp-headers");
|
|
102
|
+
// M5: Insecure Communication (7 rules)
|
|
103
|
+
const no_http_urls_1 = require("./rules/no-http-urls");
|
|
104
|
+
const no_disabled_certificate_validation_1 = require("./rules/no-disabled-certificate-validation");
|
|
105
|
+
const require_https_only_1 = require("./rules/require-https-only");
|
|
106
|
+
const no_insecure_websocket_1 = require("./rules/no-insecure-websocket");
|
|
107
|
+
const detect_mixed_content_1 = require("./rules/detect-mixed-content");
|
|
108
|
+
const no_allow_arbitrary_loads_1 = require("./rules/no-allow-arbitrary-loads");
|
|
109
|
+
const require_network_timeout_1 = require("./rules/require-network-timeout");
|
|
110
|
+
// M6: Inadequate Privacy Controls (4 rules)
|
|
111
|
+
const no_pii_in_logs_1 = require("./rules/no-pii-in-logs");
|
|
112
|
+
const no_tracking_without_consent_1 = require("./rules/no-tracking-without-consent");
|
|
113
|
+
const require_data_minimization_1 = require("./rules/require-data-minimization");
|
|
114
|
+
const no_sensitive_data_in_analytics_1 = require("./rules/no-sensitive-data-in-analytics");
|
|
115
|
+
// M7: Insufficient Binary Protections (2 rules)
|
|
116
|
+
const no_debug_code_in_production_1 = require("./rules/no-debug-code-in-production");
|
|
117
|
+
const require_code_minification_1 = require("./rules/require-code-minification");
|
|
118
|
+
// M8: Security Misconfiguration (4 rules)
|
|
119
|
+
const no_verbose_error_messages_1 = require("./rules/no-verbose-error-messages");
|
|
120
|
+
const no_exposed_debug_endpoints_1 = require("./rules/no-exposed-debug-endpoints");
|
|
121
|
+
const require_secure_defaults_1 = require("./rules/require-secure-defaults");
|
|
122
|
+
const no_permissive_cors_1 = require("./rules/no-permissive-cors");
|
|
123
|
+
// M9: Insecure Data Storage (5 rules)
|
|
124
|
+
const no_unencrypted_local_storage_1 = require("./rules/no-unencrypted-local-storage");
|
|
125
|
+
const no_sensitive_data_in_cache_1 = require("./rules/no-sensitive-data-in-cache");
|
|
126
|
+
const require_storage_encryption_1 = require("./rules/require-storage-encryption");
|
|
127
|
+
const no_data_in_temp_storage_1 = require("./rules/no-data-in-temp-storage");
|
|
128
|
+
const require_secure_deletion_1 = require("./rules/require-secure-deletion");
|
|
79
129
|
/**
|
|
80
130
|
* Collection of all security ESLint rules
|
|
81
131
|
*/
|
|
@@ -129,6 +179,56 @@ exports.rules = {
|
|
|
129
179
|
'no-unchecked-loop-condition': no_unchecked_loop_condition_1.noUncheckedLoopCondition,
|
|
130
180
|
'no-electron-security-issues': no_electron_security_issues_1.noElectronSecurityIssues,
|
|
131
181
|
'no-insufficient-postmessage-validation': no_insufficient_postmessage_validation_1.noInsufficientPostmessageValidation,
|
|
182
|
+
// OWASP Mobile Top 10 2023/2024 rules (40 rules)
|
|
183
|
+
// M1: Improper Credential Usage (3 rules)
|
|
184
|
+
'no-credentials-in-storage-api': no_credentials_in_storage_api_1.noCredentialsInStorageApi,
|
|
185
|
+
'no-credentials-in-query-params': no_credentials_in_query_params_1.noCredentialsInQueryParams,
|
|
186
|
+
'require-secure-credential-storage': require_secure_credential_storage_1.requireSecureCredentialStorage,
|
|
187
|
+
// M2: Inadequate Supply Chain Security (4 rules)
|
|
188
|
+
'require-dependency-integrity': require_dependency_integrity_1.requireDependencyIntegrity,
|
|
189
|
+
'detect-suspicious-dependencies': detect_suspicious_dependencies_1.detectSuspiciousDependencies,
|
|
190
|
+
'no-dynamic-dependency-loading': no_dynamic_dependency_loading_1.noDynamicDependencyLoading,
|
|
191
|
+
'require-package-lock': require_package_lock_1.requirePackageLock,
|
|
192
|
+
// M3: Insecure Authentication/Authorization (5 rules)
|
|
193
|
+
'no-client-side-auth-logic': no_client_side_auth_logic_1.noClientSideAuthLogic,
|
|
194
|
+
'require-backend-authorization': require_backend_authorization_1.requireBackendAuthorization,
|
|
195
|
+
'no-hardcoded-session-tokens': no_hardcoded_session_tokens_1.noHardcodedSessionTokens,
|
|
196
|
+
'detect-weak-password-validation': detect_weak_password_validation_1.detectWeakPasswordValidation,
|
|
197
|
+
'no-password-in-url': no_password_in_url_1.noPasswordInUrl,
|
|
198
|
+
// M4: Insufficient Input/Output Validation (6 rules)
|
|
199
|
+
'no-unvalidated-deeplinks': no_unvalidated_deeplinks_1.noUnvalidatedDeeplinks,
|
|
200
|
+
'require-url-validation': require_url_validation_1.requireUrlValidation,
|
|
201
|
+
'no-arbitrary-file-access': no_arbitrary_file_access_1.noArbitraryFileAccess,
|
|
202
|
+
'require-mime-type-validation': require_mime_type_validation_1.requireMimeTypeValidation,
|
|
203
|
+
'no-postmessage-origin-wildcard': no_postmessage_origin_wildcard_1.noPostmessageOriginWildcard,
|
|
204
|
+
'require-csp-headers': require_csp_headers_1.requireCspHeaders,
|
|
205
|
+
// M5: Insecure Communication (7 rules)
|
|
206
|
+
'no-http-urls': no_http_urls_1.noHttpUrls,
|
|
207
|
+
'no-disabled-certificate-validation': no_disabled_certificate_validation_1.noDisabledCertificateValidation,
|
|
208
|
+
'require-https-only': require_https_only_1.requireHttpsOnly,
|
|
209
|
+
'no-insecure-websocket': no_insecure_websocket_1.noInsecureWebsocket,
|
|
210
|
+
'detect-mixed-content': detect_mixed_content_1.detectMixedContent,
|
|
211
|
+
'no-allow-arbitrary-loads': no_allow_arbitrary_loads_1.noAllowArbitraryLoads,
|
|
212
|
+
'require-network-timeout': require_network_timeout_1.requireNetworkTimeout,
|
|
213
|
+
// M6: Inadequate Privacy Controls (4 rules)
|
|
214
|
+
'no-pii-in-logs': no_pii_in_logs_1.noPiiInLogs,
|
|
215
|
+
'no-tracking-without-consent': no_tracking_without_consent_1.noTrackingWithoutConsent,
|
|
216
|
+
'require-data-minimization': require_data_minimization_1.requireDataMinimization,
|
|
217
|
+
'no-sensitive-data-in-analytics': no_sensitive_data_in_analytics_1.noSensitiveDataInAnalytics,
|
|
218
|
+
// M7: Insufficient Binary Protections (2 rules)
|
|
219
|
+
'no-debug-code-in-production': no_debug_code_in_production_1.noDebugCodeInProduction,
|
|
220
|
+
'require-code-minification': require_code_minification_1.requireCodeMinification,
|
|
221
|
+
// M8: Security Misconfiguration (4 rules)
|
|
222
|
+
'no-verbose-error-messages': no_verbose_error_messages_1.noVerboseErrorMessages,
|
|
223
|
+
'no-exposed-debug-endpoints': no_exposed_debug_endpoints_1.noExposedDebugEndpoints,
|
|
224
|
+
'require-secure-defaults': require_secure_defaults_1.requireSecureDefaults,
|
|
225
|
+
'no-permissive-cors': no_permissive_cors_1.noPermissiveCors,
|
|
226
|
+
// M9: Insecure Data Storage (5 rules)
|
|
227
|
+
'no-unencrypted-local-storage': no_unencrypted_local_storage_1.noUnencryptedLocalStorage,
|
|
228
|
+
'no-sensitive-data-in-cache': no_sensitive_data_in_cache_1.noSensitiveDataInCache,
|
|
229
|
+
'require-storage-encryption': require_storage_encryption_1.requireStorageEncryption,
|
|
230
|
+
'no-data-in-temp-storage': no_data_in_temp_storage_1.noDataInTempStorage,
|
|
231
|
+
'require-secure-deletion': require_secure_deletion_1.requireSecureDeletion,
|
|
132
232
|
};
|
|
133
233
|
/**
|
|
134
234
|
* ESLint Plugin object
|
|
@@ -206,6 +306,19 @@ const recommendedRules = {
|
|
|
206
306
|
// Medium - Platform specific
|
|
207
307
|
'secure-coding/no-electron-security-issues': 'error',
|
|
208
308
|
'secure-coding/no-insufficient-postmessage-validation': 'error',
|
|
309
|
+
// Mobile & General Security (OWASP Mobile)
|
|
310
|
+
'secure-coding/no-credentials-in-storage-api': 'error',
|
|
311
|
+
'secure-coding/no-credentials-in-query-params': 'error',
|
|
312
|
+
'secure-coding/no-http-urls': 'error',
|
|
313
|
+
'secure-coding/require-https-only': 'error',
|
|
314
|
+
'secure-coding/no-pii-in-logs': 'warn',
|
|
315
|
+
'secure-coding/no-verbose-error-messages': 'warn',
|
|
316
|
+
'secure-coding/no-hardcoded-session-tokens': 'error',
|
|
317
|
+
'secure-coding/detect-mixed-content': 'error',
|
|
318
|
+
'secure-coding/no-unvalidated-deeplinks': 'error',
|
|
319
|
+
'secure-coding/no-postmessage-origin-wildcard': 'error',
|
|
320
|
+
'secure-coding/no-insecure-websocket': 'error',
|
|
321
|
+
'secure-coding/detect-suspicious-dependencies': 'warn',
|
|
209
322
|
};
|
|
210
323
|
exports.configs = {
|
|
211
324
|
/**
|
|
@@ -283,6 +396,68 @@ exports.configs = {
|
|
|
283
396
|
'secure-coding/no-unsafe-dynamic-require': 'error',
|
|
284
397
|
},
|
|
285
398
|
},
|
|
399
|
+
/**
|
|
400
|
+
* OWASP Mobile Top 10 focused configuration
|
|
401
|
+
*
|
|
402
|
+
* Rules mapped to OWASP Mobile Top 10 2024 categories
|
|
403
|
+
*/
|
|
404
|
+
'owasp-mobile-top-10': {
|
|
405
|
+
plugins: {
|
|
406
|
+
'secure-coding': exports.plugin,
|
|
407
|
+
},
|
|
408
|
+
rules: {
|
|
409
|
+
// M1: Improper Credential Usage
|
|
410
|
+
'secure-coding/no-credentials-in-storage-api': 'error',
|
|
411
|
+
'secure-coding/no-credentials-in-query-params': 'error',
|
|
412
|
+
'secure-coding/require-secure-credential-storage': 'error',
|
|
413
|
+
'secure-coding/no-hardcoded-credentials': 'error',
|
|
414
|
+
// M2: Inadequate Supply Chain Security
|
|
415
|
+
'secure-coding/require-dependency-integrity': 'error',
|
|
416
|
+
'secure-coding/detect-suspicious-dependencies': 'error',
|
|
417
|
+
'secure-coding/no-dynamic-dependency-loading': 'error',
|
|
418
|
+
'secure-coding/require-package-lock': 'error',
|
|
419
|
+
// M3: Insecure Authentication/Authorization
|
|
420
|
+
'secure-coding/no-client-side-auth-logic': 'error',
|
|
421
|
+
'secure-coding/require-backend-authorization': 'error',
|
|
422
|
+
'secure-coding/no-hardcoded-session-tokens': 'error',
|
|
423
|
+
'secure-coding/detect-weak-password-validation': 'error',
|
|
424
|
+
'secure-coding/no-password-in-url': 'error',
|
|
425
|
+
// M4: Insufficient Input/Output Validation
|
|
426
|
+
'secure-coding/no-unvalidated-deeplinks': 'error',
|
|
427
|
+
'secure-coding/require-url-validation': 'error',
|
|
428
|
+
'secure-coding/no-arbitrary-file-access': 'error',
|
|
429
|
+
'secure-coding/require-mime-type-validation': 'error',
|
|
430
|
+
'secure-coding/no-postmessage-origin-wildcard': 'error',
|
|
431
|
+
'secure-coding/require-csp-headers': 'error',
|
|
432
|
+
// M5: Insecure Communication
|
|
433
|
+
'secure-coding/no-http-urls': 'error',
|
|
434
|
+
'secure-coding/no-disabled-certificate-validation': 'error',
|
|
435
|
+
'secure-coding/require-https-only': 'error',
|
|
436
|
+
'secure-coding/no-insecure-websocket': 'error',
|
|
437
|
+
'secure-coding/detect-mixed-content': 'error',
|
|
438
|
+
'secure-coding/no-allow-arbitrary-loads': 'error',
|
|
439
|
+
'secure-coding/require-network-timeout': 'error',
|
|
440
|
+
// M6: Inadequate Privacy Controls
|
|
441
|
+
'secure-coding/no-pii-in-logs': 'error',
|
|
442
|
+
'secure-coding/no-tracking-without-consent': 'error',
|
|
443
|
+
'secure-coding/require-data-minimization': 'error',
|
|
444
|
+
'secure-coding/no-sensitive-data-in-analytics': 'error',
|
|
445
|
+
// M7: Insufficient Binary Protections
|
|
446
|
+
'secure-coding/no-debug-code-in-production': 'error',
|
|
447
|
+
'secure-coding/require-code-minification': 'error',
|
|
448
|
+
// M8: Security Misconfiguration
|
|
449
|
+
'secure-coding/no-verbose-error-messages': 'error',
|
|
450
|
+
'secure-coding/no-exposed-debug-endpoints': 'error',
|
|
451
|
+
'secure-coding/require-secure-defaults': 'error',
|
|
452
|
+
'secure-coding/no-permissive-cors': 'error',
|
|
453
|
+
// M9: Insecure Data Storage
|
|
454
|
+
'secure-coding/no-unencrypted-local-storage': 'error',
|
|
455
|
+
'secure-coding/no-sensitive-data-in-cache': 'error',
|
|
456
|
+
'secure-coding/require-storage-encryption': 'error',
|
|
457
|
+
'secure-coding/no-data-in-temp-storage': 'error',
|
|
458
|
+
'secure-coding/require-secure-deletion': 'error',
|
|
459
|
+
},
|
|
460
|
+
},
|
|
286
461
|
};
|
|
287
462
|
/**
|
|
288
463
|
* Default export for ESLint plugin
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/eslint-plugin-secure-coding/src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;GAaG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../packages/eslint-plugin-secure-coding/src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/eslint-plugin-secure-coding/src/rules/database-injection/index.ts"],"names":[],"mappings":"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"}
|