NFC WESMUN implements enterprise-grade security measures to protect user data, prevent unauthorized access, and maintain system integrity. This document outlines our security architecture, best practices, and vulnerability reporting procedures.
DO NOT open public GitHub issues for security vulnerabilities.
Instead, please report via:
- Email: it@wesmun.com
- Subject:
[SECURITY] <Brief description> - Include:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if any)
- Acknowledgment: Within 48 hours
- Investigation: 3-4 business days
- Fix & Release: ASAP (depends on severity)
- Credit: Public acknowledgment (if desired)
-
Use Strong Passwords
- Mix of character types
- Unique per service
- Use password manager
-
Review Audit Logs
- Check weekly for suspicious activity
- Monitor failed login attempts
- Review access level changes and permission usage
-
Keep Software Updated
- Update dependencies regularly
- Monitor security advisories
- Apply patches promptly
-
Limit Admin Accounts
- Create admin accounts only when necessary
- Use principle of 'least privilege' - grant minimal necessary permissions
- Remove inactive admin/security/overseer accounts
-
Never Commit Secrets
- Use
.env.local(gitignored) - Rotate secrets regularly
- Use environment variables
- Use
-
Validate All Inputs
- Server-side validation required
- Client-side validation optional
- Never trust user input
-
Use Parameterized Queries
- Always use
$1, $2parameters - Never concatenate SQL strings
- Review all database queries
- Always use
-
Handle Errors Securely
- Generic messages in production
- Detailed logs server-side only
- No stack traces to users
-
Code Review
- Security-focused reviews
- Check for common vulnerabilities
- Follow OWASP guidelines
Recommended security headers:
/** @type {import('next').NextConfig} */
const nextConfig = {
typescript: {
ignoreBuildErrors: true
},
images: {
unoptimized: true
},
async headers() {
return [
{
source: '/(.*)',
headers: [
{ key: 'X-Frame-Options', value: 'DENY' },
{ key: 'X-Content-Type-Options', value: 'nosniff' },
{ key: 'X-XSS-Protection', value: '1; mode=block' },
{ key: 'Referrer-Policy', value: 'strict-origin-when-cross-origin' },
{
key: 'Permissions-Policy',
value: 'camera=(), microphone=(), geolocation=()'
}
]
}
]
}
}
export default nextConfig- All secrets in environment variables
- DATABASE_URL uses SSL/TLS
- HTTPS enforced in production
- Security headers configured
- Rate limiting enabled
- Error messages generic
- Admin account secured
- Database backups configured
- Audit logs reviewed
- Monitor failed login attempts
- Review audit logs weekly
- Update dependencies monthly
- Test backup restoration quarterly
- Security audit annually
- Penetration testing as needed
-
Choose Strong Passwords
- At least 6 characters (12+ recommended)
- Don't reuse passwords
- Change if compromised
-
Logout After Use
- Especially on shared devices
- Sessions expire after 3 days automatically
-
Report Suspicious Activity
- Contact administrators
If a security incident is detected:
- Immediately revoke all active sessions
- Review audit logs for affected users
- Notify affected users via email
- Change database credentials
- Investigate root cause
- Implement additional safeguards
- Document incident and response