This document outlines the security features and best practices implemented in the LangGraph + Mem0 integration demo. These security measures help protect against common vulnerabilities while maintaining functionality.
Protection Against: Injection attacks, XSS, malicious content Implementation:
- All user inputs are sanitized using HTML escaping
- Control characters and dangerous patterns are removed
- Maximum input length limits enforced (10,000 characters)
- Pattern matching to detect and remove potentially malicious scripts
Configuration:
max_input_length = 10000 # Maximum input length
dangerous_patterns = [
r'<script[^>]*>[\s\S]*?</script>',
r'javascript:',
r'on\w+\s*=',
r'eval\s*\(',
r'exec\s*\(',
]Protection Against: Configuration vulnerabilities, runtime failures Implementation:
- Mandatory validation of all required environment variables
- Format validation for URLs and numeric values
- Secure error messages that don't expose system details
Required Environment Variables:
ANTHROPIC_API_KEY=your_anthropic_api_key_here
ANTHROPIC_MODEL=claude-sonnet-4-0
OLLAMA_MODEL=nomic-embed-text:latest
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_EMBEDDING_DIMS=768
CHROMA_COLLECTION_NAME=test
CHROMA_DB_PATH=db
Protection Against: Information leakage, system enumeration Implementation:
- Generic error messages to users
- Detailed errors logged securely for administrators
- Exception type logging without sensitive details
Protection Against: Persistent malicious content, data corruption Implementation:
- Content sanitization before storage
- Length limits for memory content (5,000 characters)
- Validation of retrieved memory content
Protection Against: DoS attacks, resource abuse Implementation:
- Per-user rate limiting: 20 requests per minute, 100 per hour
- Automatic cleanup of old request records
- Graceful handling of rate limit violations
Configuration:
rate_limits = {
'requests_per_minute': 20,
'requests_per_hour': 100
}Protection Against: Undetected attacks, compliance violations Implementation:
- Comprehensive security event logging
- Separate security log file (
security.log) - Structured logging with timestamps and severity levels
Log Events:
- Environment validation failures
- Input sanitization triggers
- Rate limit violations
- Memory validation failures
- Authentication/API errors
-
Environment Variables:
- Store API keys in secure secret management systems
- Use environment-specific configuration files
- Implement key rotation policies
-
Rate Limiting:
- Adjust limits based on expected usage patterns
- Consider implementing different limits for different user tiers
- Monitor and alert on unusual traffic patterns
-
Logging:
- Configure log rotation to prevent disk space issues
- Send security logs to centralized monitoring systems
- Set up alerts for critical security events
-
Input Validation:
- Review and update dangerous patterns regularly
- Consider implementing content scanning for specific use cases
- Adjust length limits based on application requirements
-
Network Security:
- Use HTTPS for all external API communications
- Implement network firewalls and access controls
- Consider VPN or private network access for Ollama
-
Database Security:
- Encrypt ChromaDB data at rest
- Implement backup encryption
- Regular security updates for database dependencies
-
Authentication and Authorization:
- Implement proper user authentication in production
- Use unique, non-predictable user IDs
- Consider multi-factor authentication for admin access
-
Dependency Management:
- Regularly update dependencies for security patches
- Use dependency scanning tools
- Pin dependency versions in production
- Rate Limiting Events: Track frequency and patterns
- Input Sanitization Triggers: Monitor for attack attempts
- API Error Rates: Detect potential abuse or system issues
- Memory Validation Failures: Watch for data corruption attempts
- Multiple rate limit violations from single user: Immediate alert
- High frequency of input sanitization events: Investigation required
- Environment validation failures: Critical alert
- Unusual error patterns: Monitoring alert
- Critical: Environment compromise, data exfiltration attempts
- High: Repeated attack patterns, rate limit abuse
- Medium: Input sanitization triggers, validation failures
- Low: Normal security events, routine monitoring
- Immediate: Block/rate limit offending users
- Short-term: Review logs, assess impact
- Long-term: Update security measures, improve monitoring
- Input Validation: Test with malicious payloads
- Rate Limiting: Verify limits are enforced correctly
- Error Handling: Ensure no information leakage
- Environment Security: Test with missing/invalid configurations
- Input fuzzing tools for validation testing
- Load testing tools for rate limit verification
- Static analysis tools for code security review
- Dependency vulnerability scanners
- Memory content is stored locally in ChromaDB
- No data transmission to unauthorized third parties
- User data isolation through user_id segregation
- Conversation data is persisted locally
- No external data sharing beyond configured APIs
- User control over data through user_id management
This security implementation should be reviewed and updated regularly:
- Monthly review of security logs and metrics
- Quarterly assessment of security measures effectiveness
- Annual security architecture review
- Immediate updates for critical vulnerabilities
For security-related questions or to report vulnerabilities, please review the project's contribution guidelines and issue reporting process.