We actively support security updates for the following versions:
| Version | Supported | Security Updates |
|---|---|---|
| Latest | ✅ | ✅ |
| Latest - 1 | ✅ | ✅ |
| Latest - 2 | ✅ | Security patches only |
| < Latest - 2 | ❌ | ❌ |
Security updates are provided for:
- The latest major version
- The previous major version (for 6 months after new major release)
- Critical security patches for older versions on a case-by-case basis
We take security vulnerabilities seriously. If you discover a security vulnerability, please follow our responsible disclosure process.
- Do not create a public GitHub issue for security vulnerabilities
- Email security details to:
security@example.com(replace with actual email) - Include the following information:
- Description of the vulnerability
- Steps to reproduce
- Potential impact
- Suggested fix (if you have one)
- Your contact information
Please report:
- Authentication or authorization bypasses
- Injection vulnerabilities (XSS, code injection, etc.)
- Data exposure or leakage
- Denial of service vulnerabilities
- Privilege escalation issues
- Any security issue that could impact users
Please do not report:
- Issues that require physical access to the device
- Issues that require social engineering
- Issues that require already-compromised user accounts
- Issues in third-party dependencies (report to the dependency maintainers)
- Issues that require non-standard configurations
- Issues that are already publicly known
We commit to:
- Initial Response: Within 48 hours of receiving your report
- Status Update: Within 7 days with an assessment
- Resolution: As quickly as possible, typically within 30 days
- Public Disclosure: After a fix is released and users have had time to update
- Acknowledgment: We will acknowledge receipt of your report within 48 hours
- Investigation: We will investigate and verify the vulnerability
- Fix Development: We will develop a fix for the vulnerability
- Testing: We will test the fix thoroughly
- Release: We will release a security patch
- Disclosure: We will publicly disclose the vulnerability after users have had time to update (typically 7-14 days)
We believe in recognizing security researchers who help keep our project secure:
- Hall of Fame: Security researchers who report valid vulnerabilities will be listed in our Security Hall of Fame (with permission)
- Credit: You will be credited in the security advisory (if desired)
- Responsible Disclosure: We appreciate responsible disclosure and will work with you throughout the process
For users of ngxsmk-gatekeeper:
- Keep Updated: Always use the latest version of the library
- Review Changes: Review changelog and security advisories
- Server-Side Validation: Always implement server-side validation (client-side protection is not sufficient)
- Secure Storage: Store authentication tokens securely
- Regular Audits: Regularly audit your middleware configuration
- Monitor: Monitor for security advisories and updates
Security advisories are published:
- On GitHub Security Advisories
- In the project's security announcements
- Via email to registered users (if applicable)
Security Email: security@example.com (replace with actual email)
PGP Key: (Optional - add if you have one)
-----BEGIN PGP PUBLIC KEY BLOCK-----
[Your PGP key here]
-----END PGP PUBLIC KEY BLOCK-----
This security policy may be updated from time to time. Significant changes will be announced via:
- GitHub releases
- Project announcements
- Security advisories
ngxsmk-gatekeeper runs in the browser and provides client-side protection. Important security considerations:
- Not a Security Measure: Client-side protection can be bypassed and should not be relied upon for security
- Server-Side Required: Always implement server-side validation and protection
- Defense in Depth: Use client-side protection as part of a defense-in-depth strategy
- Token Security: Store authentication tokens securely (httpOnly cookies, secure storage)
- HTTPS Required: Always use HTTPS in production
- Client-side middleware can be disabled or bypassed
- Tokens stored in localStorage are accessible to JavaScript
- Execution order can be modified by determined attackers
- Tamper detection is best-effort and can be bypassed
- Use HTTPS: Always use HTTPS in production
- Secure Tokens: Use httpOnly cookies or secure storage for tokens
- Server Validation: Always validate on the server side
- Regular Updates: Keep the library and dependencies updated
- Security Headers: Use security headers middleware
- Audit Logging: Enable audit logging for compliance and monitoring
- Zero Trust: Consider zero trust mode for enterprise applications
Thank you for helping keep ngxsmk-gatekeeper secure. We appreciate your responsible disclosure and commitment to security.