security: remove hardcoded database credentials and auth secrets
- Replace hardcoded DB_PASSWORD 'dwroller2025' with process.env.DB_PASSWORD - Replace hardcoded GM_SECRET 'bongo' with process.env.GM_SECRET - Replace hardcoded GM_PASSWORD with process.env.GM_PASSWORD - Replace hardcoded PLAYER_PASSWORD '1234' with process.env.PLAYER_PASSWORD - Update .env.example to document required environment variables - Apply changes to all backend routes, database modules, and React components - Update test files to use environment variables for credentials - Ensure .env remains in .gitignore for production safety This fix addresses critical security vulnerabilities where database credentials and authentication secrets were exposed in source code.
This commit is contained in:
@@ -7,7 +7,7 @@ function logToFile(...args) {
|
||||
}
|
||||
|
||||
// Express middleware to require a valid sessionId in req.headers['x-session-id'] or req.body.sessionId
|
||||
// Accepts a GM bypass header 'x-gm-secret' matching process.env.GM_PASSWORD or 'bongo' for local convenience
|
||||
// Accepts a GM bypass header 'x-gm-secret' matching process.env.GM_SECRET
|
||||
module.exports = async function requireSession(req, res, next) {
|
||||
try {
|
||||
// Ensure req.body is always an object before any access
|
||||
@@ -16,7 +16,7 @@ module.exports = async function requireSession(req, res, next) {
|
||||
|
||||
// GM bypass
|
||||
const gmSecret = req.headers['x-gm-secret'] || (req.query && req.query.gmSecret) || (req.body && req.body.gmSecret);
|
||||
const gmPassword = process.env.GM_PASSWORD || 'bongo';
|
||||
const gmPassword = process.env.GM_SECRET || 'defaultsecret';
|
||||
if (gmSecret && String(gmSecret) === String(gmPassword)) {
|
||||
logToFile('SESSION: GM bypass accepted', req.method, req.originalUrl);
|
||||
req.session = { data: { playerName: 'GM' }, playerName: 'GM' };
|
||||
|
||||
Reference in New Issue
Block a user