If you discover a security vulnerability within LatteSplash, please send an email to the project maintainer. All security vulnerabilities will be promptly addressed.
Please do not report security vulnerabilities through public GitHub issues.
| Version | Supported |
|---|---|
| 1.0.x | ✅ |
- Bearer Token: Store tokens securely; never commit to version control
- Client-ID: Keep your API key private; use environment variables
- OAuth2: Implement proper token refresh mechanisms
-
Environment Variables: Store sensitive credentials in environment variables:
String apiKey = System.getenv("UNSPLASH_ACCESS_KEY");
-
Secure Storage: Use a secrets manager for production applications (AWS Secrets Manager, HashiCorp Vault, etc.)
-
HTTPS Only: All API communication uses HTTPS by default
-
Token Rotation: Regularly rotate your API keys and tokens
-
Minimal Permissions: Request only the scopes you need
- All requests use HTTPS
- SHA-256 header hashing for request verification
- Configurable timeout to prevent hanging connections
- Automatic retry with exponential backoff
- API responses are not cached by default
- Sensitive data is not logged
- Credentials are masked in debug output
LatteSplash uses the following dependencies with known security track records:
| Dependency | Version | Purpose |
|---|---|---|
| OkHttp | 4.12.0 | HTTP client |
| Gson | 2.10.1 | JSON serialization |
| SLF4J | 2.0.9 | Logging |
Regularly check for dependency updates:
mvn versions:display-dependency-updates- Rate Limiting: Respect the Unsplash API rate limits (50 requests/hour for demo apps, 5000 for production)
- Caching: Implement client-side caching to reduce API calls
- Error Handling: Don't expose API keys in error messages
- Logging: Never log sensitive credentials
// Good: Using environment variables
LatteSplashConfig config = new LatteSplashConfig.Builder()
.accessKey(System.getenv("UNSPLASH_ACCESS_KEY"))
.secretKey(System.getenv("UNSPLASH_SECRET_KEY"))
.build();
// Bad: Hardcoded credentials (NEVER DO THIS)
LatteSplashConfig config = new LatteSplashConfig.Builder()
.accessKey("your-access-key-here") // DON'T
.build();Security updates will be released as patch versions (e.g., 1.0.1, 1.0.2).
Subscribe to GitHub releases for notifications.
For security-related inquiries, please contact the project maintainer via:
- GitHub: https://github.com/SandeepVattapparambil
- Email: [Contact via GitHub profile]
We thank the security research community for responsibly disclosing vulnerabilities.
This security policy is part of the LatteSplash project, licensed under the MIT License.