- Supported Versions
- Reporting a Vulnerability
- Security Measures
- Security Best Practices
- Automated Security
- Known Security Issues
- Security Update Process
- Security Contacts
We release security updates for the following versions:
| Version | Supported | Status |
|---|---|---|
| 1.0.x | β Active support | Current stable release |
| 0.9.x | Security fixes only | |
| < 0.9 | β Not supported | Please upgrade |
Recommendation: Always use the latest stable version for the best security and features.
We take security vulnerabilities seriously. If you discover a security issue, please follow these steps:
- β Open a public GitHub issue
- β Discuss the vulnerability publicly
- β Exploit the vulnerability
- β Share the vulnerability with others
- Email us privately: Send details to security@thisjowi.uk
- Provide details: Include a description, steps to reproduce, and potential impact
- Wait for confirmation: We'll acknowledge receipt within 48 hours
- Coordinate disclosure: We'll work with you on responsible disclosure
Subject: [SECURITY] Brief description of vulnerability
Description:
[Detailed description of the vulnerability]
Affected Component:
[Which part of the application is affected]
Steps to Reproduce:
1. [Step 1]
2. [Step 2]
3. [Step 3]
Expected Behavior:
[What should happen]
Actual Behavior:
[What actually happens]
Impact:
[Potential security impact]
Suggested Fix (optional):
[Your suggestions for fixing the issue]
Environment:
- App Version: [version]
- Platform: [Android/iOS/Web/etc.]
- OS Version: [version]
Your Contact:
- Name: [Your name]
- Email: [Your email]
- GitHub: [Your GitHub username]
| Timeframe | Action |
|---|---|
| 48 hours | Initial acknowledgment |
| 7 days | Detailed response and severity assessment |
| 30 days | Fix development and testing |
| 90 days | Public disclosure (coordinated with reporter) |
We classify vulnerabilities using CVSS scoring:
- π΄ Critical (9.0-10.0): Immediate action required
- π High (7.0-8.9): Urgent attention needed
- π‘ Medium (4.0-6.9): Should be addressed soon
- π’ Low (0.1-3.9): Can be addressed in regular updates
- β JWT token-based authentication
- β Secure token storage using platform-specific secure storage
- β Automatic token refresh
- β Session timeout management
- β Biometric authentication support (iOS/macOS)
// Token storage example
import 'package:flutter_secure_storage/flutter_secure_storage';
final storage = FlutterSecureStorage();
await storage.write(key: 'jwt_token', value: token);- β HTTPS-only communication
- β SSL certificate pinning (planned)
- β Encrypted local storage for sensitive data
- β No sensitive data in logs
- β Input validation and sanitization
- β API timeout configuration
- β Request/response interceptors
- β Error handling without exposing internals
- β Rate limiting (backend-side)
// Secure API configuration
class ApiConfig {
static const int requestTimeout = 15;
static Map<String, String> authHeaders(String token) => {
'Authorization': 'Bearer $token',
'Content-Type': 'application/json',
};
}- β Environment variables for configuration
- β No hardcoded secrets
- β
.envfile in.gitignore - β Separate configs for dev/prod
- β No sensitive data in code
- β Obfuscation for release builds
- β ProGuard/R8 enabled (Android)
- β Code signing (iOS/Android)
- π Use strong, unique passwords
- π Enable biometric authentication if available
- π± Keep the app updated
- π« Don't share your credentials
β οΈ Be cautious of phishing attempts- π Regularly review your account activity
- π Use device lock screen (PIN/Pattern/Biometric)
- π Keep your OS updated
- π« Don't root/jailbreak your device
- π± Install apps only from official stores
- π Review app permissions
# β
DO: Use environment variables
LOCAL_NETWORK_IP=192.168.1.100
API_KEY=get_from_secure_storage
# β DON'T: Hardcode sensitive data
final apiKey = "sk_live_12345abcdef"; // NEVER DO THIS!- No API keys or secrets in code
- No sensitive data in logs
- Input validation implemented
- Error messages don't expose internals
- HTTPS used for all API calls
- Proper authentication checks
- Secure data storage used
- Dependencies are up to date
- Security tests pass
β Good: Secure password handling
Future<void> login(String email, String password) async {
try {
final response = await authService.login(email, password);
await secureStorage.write(key: 'token', value: response.token);
// Password is not stored or logged
} catch (e) {
// Generic error message, no sensitive details
throw AuthException('Authentication failed');
}
}β Bad: Insecure password handling
Future<void> login(String email, String password) async {
print('Password: $password'); // DON'T LOG PASSWORDS!
prefs.setString('password', password); // DON'T STORE PASSWORDS!
try {
final response = await authService.login(email, password);
} catch (e) {
print('Error: $e'); // Might expose sensitive details
}
}We run automated security scans on every push and pull request:
- Dependency vulnerability scanning
- Static code analysis
- Secret detection in code
- Android security linting
Runs: Push to main/develop, PRs, Weekly schedule
- Detects exposed
.envfiles - Finds hardcoded IPs
- Identifies API key patterns
- Checks for Android keystores
- Validates Firebase configs
Runs: Push to main/develop, PRs
# Run security checks locally
flutter analyze
flutter test --coverage
# Check for outdated/vulnerable packages
flutter pub outdatedWe regularly update dependencies to patch security vulnerabilities:
# Check for security updates
flutter pub outdated --mode=null-safety
# Update dependencies
flutter pub upgrade
# Verify app still works
flutter test
flutter run| ID | Severity | Issue | Status | ETA |
|---|---|---|---|---|
| None | - | No known issues | β | - |
| ID | Severity | Issue | Fixed In | Date |
|---|---|---|---|---|
| SEC-001 | π‘ Medium | Improved token storage | v1.0.0 | 2025-11 |
See Security Advisories for complete history.
-
Triage (24-48 hours)
- Assess severity
- Verify reproducibility
- Determine impact
-
Development (1-30 days depending on severity)
- Develop fix
- Write tests
- Code review
-
Testing (3-7 days)
- Security testing
- Regression testing
- QA verification
-
Release (ASAP for critical issues)
- Patch release
- Release notes
- Security advisory
-
Disclosure (Coordinated)
- Public announcement
- CVE assignment (if applicable)
- Credit to reporter
For critical security issues:
- π§ Email notification to users
- π± In-app notification
- π’ Blog post/announcement
- π GitHub security advisory
We regularly assess our security posture:
- Code review process in place
- Automated security scanning enabled
- Dependency updates automated
- Secrets management implemented
- Incident response plan documented
- Third-party security audit (planned)
- Penetration testing (planned)
- Last Audit: November 2025 (Internal)
- Next Audit: Q2 2026 (External)
- Audit Reports: Available upon request
| Tool | Purpose | Status |
|---|---|---|
| GitHub Security Scanning | Code scanning | β Active |
| Dependabot | Dependency updates | β Active |
| TruffleHog | Secret detection | β Active |
| Gitleaks | Secret scanning | β Active |
| Flutter Analyze | Static analysis | β Active |
| Android Lint | Android security | β Active |
- π§ Email: security@thisjowi.uk
- π PGP Key: [Available on request]
- β° Response Time: Within 48 hours
| Role | Responsibility | Contact |
|---|---|---|
| Security Lead | Overall security | security@thisjowi.uk |
| DevOps | Infrastructure | devops@thisjowi.uk |
| Development | Code security | dev@thisjowi.uk |
For critical, actively exploited vulnerabilities:
- π§ Email: security-urgent@thisjowi.uk
- π± Response Time: Within 4 hours
We encourage contributors to:
- Complete OWASP Mobile Security training
- Stay updated on Flutter security advisories
- Review CVE databases regularly
We're planning to launch a bug bounty program. Details will be announced in Q1 2026.
Interested? Email security@thisjowi.uk to be notified when we launch.
- Protocol: TLS 1.2 or higher
- Cipher Suites: Modern, secure ciphers only
- Certificate Validation: Enabled and enforced
- Platform Storage: iOS Keychain, Android Keystore
- Encryption: AES-256 where available
- Key Management: Platform-managed secure enclaves
We strive to comply with:
- β GDPR (General Data Protection Regulation)
- β CCPA (California Consumer Privacy Act)
- β OWASP Mobile Top 10
- β NIST Cybersecurity Framework
See our Privacy Policy for details on data handling.
We support responsible disclosure of security vulnerabilities. Reporters who follow our guidelines will be:
- β Credited in security advisories (unless anonymity requested)
- β Kept informed throughout the fix process
- β Thanked publicly for their contribution
We recognize security researchers who help us:
| Researcher | Vulnerability | Date | Severity |
|---|---|---|---|
| Your name here | Be the first! | - | - |
For non-vulnerability security questions:
- π¬ GitHub Discussions
- π Security Documentation
For general support (non-security):
- π§ support@thisjowi.uk
- π GitHub Issues
This security policy may be updated periodically. Significant changes will be announced via:
- π’ GitHub release notes
- π§ Email notifications
- π± In-app announcements
Last Updated: November 17, 2025
Version: 1.0.0
Security is a shared responsibility. Together, we can keep THISJOWI safe for everyone.
Thank you for helping us maintain a secure application!