Hardcoded secret detected
- Rule ID: javascript_lang_hardcoded_secret
- Languages: javascript
- Source: hardcoded_secret.yml
Description
Code is not a safe place to store secrets. Use environment variables or a secret management system instead.
Remediations
❌ Do not store plaintext secrets in your code
passport.use(new OAuth2Strategy({
authorizationURL: 'https://www.example.com/oauth2/authorize',
tokenURL: 'https://www.example.com/oauth2/token',
clientID: 'my-id-123',
clientSecret: 'shh-my-secret',
callbackURL: 'http://localhost:3000/auth/example/callback'
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ exampleId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
✅ Use environment variables
passport.use(new OAuth2Strategy({
authorizationURL: 'https://www.example.com/oauth2/authorize',
tokenURL: 'https://www.example.com/oauth2/token',
clientID: process.env.CLIENT_ID,
clientSecret: process.env.CLIENT_SECRET,
callbackURL: 'http://localhost:3000/auth/example/callback'
},
function(accessToken, refreshToken, profile, cb) {
User.findOrCreate({ exampleId: profile.id }, function (err, user) {
return cb(err, user);
});
}
));
✅ Use a secret management system or even better, a key management service (KMS) with encryption, to manage and access your secrets
Resources
Associated CWE
OWASP Top 10
Configuration
To skip this rule during a scan, use the following flag
bearer scan /path/to/your-project/ --skip-rule=javascript_lang_hardcoded_secret
To run only this rule during a scan, use the following flag
bearer scan /path/to/your-project/ --only-rule=javascript_lang_hardcoded_secret
Ready to take the next step? Learn more about Bearer Cloud.