Skip to main content

Security & Compliance

Comprehensive security measures, compliance frameworks, and data protection policies implemented in FlowCampaign to ensure safe and legal email campaign management.

Security Architecture

Multi-Layer Security Model

1. Infrastructure Security

  • Cloudflare Edge Network: DDoS protection, WAF, rate limiting
  • Zero Trust Architecture: Verify every request
  • Network Segmentation: Isolate different components
  • DDoS Protection: Automatic mitigation at edge

2. Application Security

  • Input Validation: All user inputs sanitized and validated
  • Output Encoding: Prevent XSS attacks
  • SQL Injection Prevention: Parameterized queries only
  • CSRF Protection: Token-based request validation
  • CSP Headers: Content Security Policy enforcement

3. Data Security

  • Encryption at Rest: AES-256 for sensitive data
  • Encryption in Transit: TLS 1.3 for all connections
  • Key Management: Secure key storage and rotation
  • Data Masking: Sensitive data obscured in logs
  • Secure Deletion: Cryptographic data destruction

Authentication & Authorization

Multi-Factor Authentication (MFA)

Supported MFA Methods

  1. TOTP (Time-based One-Time Password)

    • Compatible with Google Authenticator, Authy, etc.
    • 30-second rotation period
    • Backup codes generation
  2. Email-based Verification

    • Secondary email confirmation
    • One-time codes for sensitive operations
    • Login attempt notifications
  3. Hardware Security Keys (Future)

    • FIDO2/WebAuthn support
    • Physical security key authentication

MFA Enforcement Policies

{
"mfa_policies": {
"admin_users": {
"required": true,
"methods": ["totp", "email"],
"grace_period": "7 days"
},
"standard_users": {
"required": false,
"recommended": true,
"risk_based": true
},
"api_keys": {
"required": false,
"ip_restriction": true
}
}
}

Role-Based Access Control (RBAC)

Pre-defined Roles

RolePermissionsDescription
Super AdminFull system accessSystem administration
AdminAll functional accessOrganization administration
Campaign ManagerCampaign CRUD, analyticsMarketing team lead
Content CreatorCampaign creation, templatesMarketing team member
AnalystRead-only analyticsData analysis only
API UserAPI access onlyIntegration applications

Custom Role Creation

// Create custom role
const customRole = {
name: "Regional Manager",
permissions: {
campaigns: ["read", "create"],
contacts: ["read", "update"],
analytics: ["read"],
templates: ["read", "use"]
},
restrictions: {
data_scope: "region:us-west",
rate_limit: "500/hour",
ip_range: ["192.168.1.0/24"]
}
};

API Authentication

API Key Security

{
"api_key": {
"format": "fc_live_sk_xxxxxxxxxxxxxxxxxxxxxxxx",
"prefix": "fc_live_sk_",
"length": 32,
"character_set": "a-z0-9",
"rotation": "90 days"
},
"security": {
"hashed_storage": true,
"rate_limiting": true,
"ip_whitelisting": false,
"expiration": true,
"usage_tracking": true
}
}

JWT Token Security

// JWT configuration
const jwtConfig = {
algorithm: "HS256",
expiration: "24h",
refresh_token_expiration: "7d",
issuer: "flowcampaign",
audience: "flowcampaign-api",
secret_rotation: "180 days"
};

Data Protection

Encryption Standards

At-Rest Encryption

{
"database_encryption": {
"algorithm": "AES-256-GCM",
"key_management": "Cloudflare Workers Secrets",
"encrypted_fields": [
"provider_credentials",
"contact_custom_fields",
"api_keys",
"user_tokens"
]
},
"file_encryption": {
"uploaded_files": "AES-256-CTR",
"exported_data": "AES-256-CBC",
"backup_files": "AES-256-GCM"
}
}

In-Transit Encryption

// TLS configuration
const tlsConfig = {
minimum_version: "TLSv1.3",
preferred_ciphers: [
"TLS_AES_256_GCM_SHA384",
"TLS_CHACHA20_POLY1305_SHA256"
],
certificate_rotation: "90 days",
hsts: {
max_age: 31536000,
include_subdomains: true,
preload: true
}
};

Data Classification

Sensitivity Levels

LevelDescriptionExamplesProtection Required
P1 - CriticalHighly sensitiveAPI keys, passwords, encryption keysFull encryption, strict access controls
P2 - ConfidentialBusiness sensitiveCampaign strategies, contact listsEncryption, role-based access
P3 - InternalInternal business dataAnalytics, performance metricsAccess controls, logging
P4 - PublicPublic informationPublished templates, documentationBasic access controls

Data Retention Policies

{
"retention_policies": {
"user_data": {
"active_users": "Indefinite",
"inactive_users": "2 years",
"deleted_users": "30 days (soft delete)"
},
"campaign_data": {
"sent_campaigns": "5 years",
"draft_campaigns": "1 year",
"campaign_analytics": "3 years"
},
"contact_data": {
"active_contacts": "Indefinite",
"unsubscribed": "1 year",
"bounced": "90 days"
},
"log_data": {
"access_logs": "90 days",
"audit_logs": "1 year",
"error_logs": "30 days"
}
}
}

Compliance Frameworks

GDPR Compliance

Data Processing Principles

  1. Lawfulness, Fairness, Transparency: Clear privacy notices
  2. Purpose Limitation: Data collected for specified purposes only
  3. Data Minimization: Collect only necessary data
  4. Accuracy: Keep data accurate and up-to-date
  5. Storage Limitation: Delete when no longer needed
  6. Integrity & Confidentiality: Protect against unauthorized processing
  7. Accountability: Demonstrate compliance

Data Subject Rights

RightImplementationResponse Time
Right to AccessData export feature30 days
Right to RectificationProfile editingImmediate
Right to ErasureAccount deletion30 days
Right to Restrict ProcessingAccount suspensionImmediate
Right to Data PortabilityExport in standard format30 days
Right to ObjectOpt-out mechanismsImmediate
Rights re: Automated Decision MakingHuman review available30 days

GDPR Implementation Features

// GDPR compliance module
const gdprModule = {
features: {
consent_management: true,
data_export: true,
data_deletion: true,
privacy_by_design: true,
dpa_management: true,
breach_notification: true
},
configurations: {
default_retention: "2 years",
auto_deletion: true,
cookie_consent: true,
privacy_policy_url: "/privacy"
}
};

CAN-SPAM Compliance

Requirements Implementation

  1. Accurate Header Information:

    • From, To, Reply-To accurately identify sender
    • No misleading subject lines
  2. Clear Identification as Advertisement:

    • Required "ADV" label for promotional emails
    • Clear commercial nature disclosure
  3. Physical Address Inclusion:

    • Valid physical postal address in every email
    • Address validation during setup
  4. Unsubscribe Mechanism:

    • Clear and conspicuous unsubscribe link
    • One-click unsubscribe processing
    • 10-day processing requirement
  5. Honor Opt-out Requests:

    • No charges for unsubscribe
    • No sharing email after unsubscribe
    • No additional messages after unsubscribe

CAN-SPAM Monitoring

{
"can_spam_monitoring": {
"required_elements": {
"physical_address": true,
"unsubscribe_link": true,
"sender_identification": true,
"subject_accuracy": true
},
"compliance_checks": {
"pre_send_validation": true,
"template_review": true,
"address_verification": true,
"unsubscribe_processing": "within_24_hours"
}
}
}

CCPA/CPRA Compliance

California Consumer Rights

  1. Right to Know: What personal information is collected
  2. Right to Delete: Request deletion of personal information
  3. Right to Opt-Out: Opt-out of sale/sharing of personal information
  4. Right to Correct: Request correction of inaccurate information
  5. Right to Limit: Limit use of sensitive personal information
  6. Right to Non-Discrimination: Not be discriminated against for exercising rights

CCPA Implementation

// CCPA compliance features
const ccpaFeatures = {
data_mapping: true, // Track data flows
opt_out_mechanism: true, // "Do Not Sell My Info" link
verifiable_requests: true, // Request verification process
service_provider_agreements: true,
minors_protection: true // Special rules for under 16
};

Other Regional Compliance

LGPD (Brazil)

  • Data protection officer requirement
  • Data processing records
  • Impact assessment for high-risk processing

PIPEDA (Canada)

  • Consent for collection, use, disclosure
  • Individual access to information
  • Challenging compliance

PDPA (Singapore)

  • Consent obligation
  • Purpose limitation
  • Notification obligation

Security Monitoring & Incident Response

Security Monitoring

Real-time Monitoring

{
"security_monitoring": {
"intrusion_detection": {
"failed_logins": "5+ attempts triggers alert",
"unusual_activity": "geographic/behavioral anomalies",
"api_abuse": "unusual API patterns"
},
"vulnerability_scans": {
"frequency": "weekly",
"tools": ["OWASP ZAP", "Nessus", "Snyk"],
"reporting": "automated to security team"
},
"log_analysis": {
"retention": "1 year",
"analysis": "SIEM integration",
"alerting": "real-time for critical events"
}
}
}

Threat Intelligence

  • Integration: Cloudflare Threat Intelligence
  • IP Reputation: Block known malicious IPs
  • Malware Detection: Scan uploaded files
  • Phishing Protection: Detect phishing campaigns
  • DDoS Mitigation: Automatic attack mitigation

Incident Response Plan

Incident Classification

SeverityDescriptionResponse TimeExamples
CriticalSystem compromise, data breachImmediateUnauthorized access, data exfiltration
HighSecurity vulnerability, DoS2 hoursVulnerability exposure, service disruption
MediumPolicy violation, suspicious activity24 hoursUnusual login patterns, policy breach
LowSecurity enhancement opportunity7 daysSecurity recommendation, minor issues

Response Procedures

  1. Detection & Analysis:

    • Identify incident scope
    • Preserve evidence
    • Notify security team
  2. Containment & Eradication:

    • Isolate affected systems
    • Remove malicious access
    • Patch vulnerabilities
  3. Recovery:

    • Restore from backups
    • Validate system integrity
    • Resume normal operations
  4. Post-Incident:

    • Root cause analysis
    • Implement improvements
    • Update documentation

Third-Party Security

Vendor Risk Management

Security Assessment Checklist

{
"vendor_assessment": {
"data_processing": {
"data_types": ["contacts", "campaigns", "analytics"],
"processing_purpose": "email delivery, analytics",
"data_transfers": "encrypted, limited scope"
},
"security_controls": {
"encryption": "AES-256 or equivalent",
"access_controls": "RBAC implemented",
"audit_logging": "comprehensive logging",
"incident_response": "documented procedures"
},
"compliance": {
"certifications": ["SOC 2", "ISO 27001"],
"gdpr_compliance": "DPA signed",
"data_sovereignty": "data location specified"
}
}
}

Approved Email Providers

ProviderSecurity CertificationData LocationEncryption
ZeptoMailSOC 2 Type II, ISO 27001US, EU optionsTLS 1.3, AES-256
Custom SMTPDepends on providerVariableConfigurable
SandboxInternal testing onlyDevelopmentMock encryption

Secure Development Lifecycle

Security Practices

  1. Security Requirements: Define security requirements upfront
  2. Threat Modeling: Identify potential threats during design
  3. Secure Coding: Follow OWASP guidelines, use security libraries
  4. Code Review: Security-focused code reviews
  5. Security Testing: SAST, DAST, penetration testing
  6. Deployment Security: Secure deployment practices
  7. Monitoring & Response: Ongoing security monitoring

Security Training

  • Annual Security Awareness: All employees
  • Secure Coding Training: Development team
  • Incident Response Drills: Quarterly exercises
  • Compliance Updates: Regular compliance training

Audit & Certification

Security Audits

Internal Audits

  • Frequency: Quarterly
  • Scope: All security controls
  • Methodology: NIST CSF framework
  • Reporting: Executive summary with findings

External Audits

  • Frequency: Annually
  • Auditor: Independent security firm
  • Standards: ISO 27001, SOC 2
  • Reports: Available to enterprise customers

Compliance Certifications

Current Certifications

  • SOC 2 Type II: Security, availability, confidentiality
  • ISO 27001: Information security management
  • GDPR: Data protection compliance
  • CAN-SPAM: Email compliance

Planned Certifications

  • ISO 27701: Privacy information management
  • PCI DSS: Payment card security (if applicable)
  • HIPAA: Healthcare data security (if applicable)

Privacy by Design

Privacy Principles Integration

Data Minimization

// Collect only necessary data
const contactSchema = {
required: ["email"],
optional: ["first_name", "last_name"],
sensitive: ["phone", "address"], // Requires explicit consent
prohibited: ["ssn", "credit_card"] // Never collected
};

Purpose Limitation

{
"data_purposes": {
"email": "Required for communication",
"name": "Personalization of emails",
"company": "Segmentation and targeting",
"location": "Geographic analytics",
"consent_records": "Compliance documentation"
},
"usage_restrictions": {
"no_third_party_sharing": true,
"no_automated_decision_making": true,
"no_profiling_without_consent": true
}
}

Transparency

  • Privacy Policy: Clear, understandable language
  • Cookie Banner: Granular consent options
  • Data Processing Records: Available to users
  • Contact Information: Easy access to DPO

Security Configuration

Security Headers

# Security headers configuration
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header X-XSS-Protection "1; mode=block";
add_header Referrer-Policy "strict-origin-when-cross-origin";
add_header Content-Security-Policy "default-src 'self'";
add_header Permissions-Policy "geolocation=(), microphone=(), camera=()";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload";

Rate Limiting Configuration

// Rate limiting settings
const rateLimits = {
api: {
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100, // Limit each IP to 100 requests per window
message: "Too many requests, please try again later."
},
auth: {
windowMs: 60 * 60 * 1000, // 1 hour
max: 5, // 5 failed attempts per hour
message: "Too many failed login attempts."
},
email_sending: {
windowMs: 24 * 60 * 60 * 1000, // 24 hours
max: 10000, // 10,000 emails per day
message: "Daily sending limit exceeded."
}
};

Emergency Procedures

Data Breach Response

  1. Immediate Actions:

    • Isolate affected systems
    • Preserve forensic evidence
    • Notify security team
  2. Assessment:

    • Determine scope and impact
    • Identify affected data subjects
    • Assess regulatory requirements
  3. Notification:

    • Regulatory authorities (72 hours for GDPR)
    • Affected individuals
    • Internal stakeholders
  4. Remediation:

    • Fix security vulnerabilities
    • Enhance security controls
    • Update incident response plan

Business Continuity

  • Backup Strategy: Daily encrypted backups
  • Recovery Time Objective (RTO): 4 hours
  • Recovery Point Objective (RPO): 24 hours
  • Disaster Recovery Site: Geographically separated

Security Contacts: Report security issues to security@nssoftwaresolutions.in

Compliance Documentation: Full compliance documentation available for enterprise customers upon request.

FlowCampaign is built with security and compliance as foundational principles, ensuring your email campaigns are managed safely and legally.