Skip to content

SecureTasker -A comprehensive secure web-based task management application demonstrating enterprise-level security practices, OWASP compliance, and automated CI/CD pipeline integration.

Notifications You must be signed in to change notification settings

0x-Professor/SecureTasker

Repository files navigation

SecureTasker - Secure Web Application with CI/CD Integration

A comprehensive secure web-based task management application demonstrating enterprise-level security practices, OWASP compliance, and automated CI/CD pipeline integration.

πŸ” Security Features

Input Validation & Sanitization

  • Client & Server-side Validation: Comprehensive validation using Zod schemas
  • SQL Injection Prevention: Parameterized queries and ORM usage
  • XSS Protection: Input sanitization and output encoding
  • CSRF Protection: Token-based CSRF protection

Authentication & Session Management

  • Secure Password Hashing: bcrypt with salt rounds
  • JWT Token Management: Secure token generation and validation
  • Session Timeout: Automatic logout and session expiration
  • Multi-factor Authentication Ready: Extensible auth system

OWASP Compliance

  • Security Headers: CSP, HSTS, X-Frame-Options, etc.
  • HTTPS Enforcement: Secure transport layer
  • Rate Limiting: API endpoint protection
  • Error Handling: Secure error messages without information disclosure

πŸ› οΈ Technology Stack

  • Frontend: Next.js 14, TypeScript, Tailwind CSS
  • Backend: Next.js API Routes, Server Actions
  • Database: Supabase (PostgreSQL)
  • Authentication: Supabase Auth
  • Validation: Zod
  • UI Components: shadcn/ui
  • Security: Custom middleware, security headers

πŸš€ CI/CD Pipeline

GitHub Actions Workflow

  • Security Scanning: Bandit, ESLint Security, npm audit
  • Code Quality: TypeScript checking, ESLint, Prettier
  • Dependency Scanning: Snyk vulnerability detection
  • Automated Testing: Unit and integration tests
  • Deployment: Automated deployment to Vercel
  • OWASP ZAP: Dynamic security testing

Security Tools Integration

  • Bandit: Python security linter
  • ESLint Security Plugin: JavaScript security rules
  • Snyk: Dependency vulnerability scanning
  • OWASP ZAP: Dynamic application security testing

πŸ“‹ Setup Instructions

Prerequisites

  • Node.js 18+
  • npm or yarn
  • Supabase account
  • GitHub account (for CI/CD)

Local Development

  1. Clone the repository

    git clone https://github.com/MR-PROFESSOR-790/SecureTasker
    cd securetasker
  2. Install dependencies

    npm install
  3. Environment Setup Create a .env.local file:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
  4. Database Setup

    • Run the SQL scripts in the scripts/ folder in your Supabase SQL editor
    • This creates the tasks table with proper RLS policies
  5. Run the development server

    npm run dev
  6. Access the application Open http://localhost:3000 in your browser

Production Deployment

  1. Vercel Deployment

    npm run build
    vercel --prod
  2. Environment Variables Set the following in your Vercel dashboard:

    • NEXT_PUBLIC_SUPABASE_URL
    • NEXT_PUBLIC_SUPABASE_ANON_KEY

πŸ” Security Implementation Details

Input Validation

const taskSchema = z.object({
  title: z.string().min(1).max(100),
  description: z.string().max(500).optional(),
  priority: z.enum(['low', 'medium', 'high']),
  status: z.enum(['pending', 'in_progress', 'completed'])
})

Security Headers

const securityHeaders = {
  'X-XSS-Protection': '1; mode=block',
  'X-Content-Type-Options': 'nosniff',
  'X-Frame-Options': 'DENY',
  'Content-Security-Policy': 'default-src \'self\'; ...',
  'Strict-Transport-Security': 'max-age=31536000; includeSubDomains'
}

Row Level Security (RLS)

CREATE POLICY "Users can only see their own tasks" ON tasks
    FOR SELECT USING (auth.uid() = user_id);

πŸ“Š Security Testing Results

Static Analysis

  • Bandit: Python security linter results
  • ESLint Security: JavaScript security rule violations
  • npm audit: Dependency vulnerability scan

Dynamic Testing

  • OWASP ZAP: Automated security testing
  • Manual Penetration Testing: Security assessment results

πŸ—οΈ Architecture

Security Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Client Side   β”‚    β”‚   Server Side   β”‚    β”‚    Database     β”‚
β”‚                 β”‚    β”‚                 β”‚    β”‚                 β”‚
β”‚ β€’ Input Valid.  │──▢│ β€’ Auth Middleware│───▢│ β€’ RLS Policies  β”‚
β”‚ β€’ XSS Protectionβ”‚    β”‚ β€’ Rate Limiting β”‚    β”‚ β€’ Encrypted Dataβ”‚
β”‚ β€’ CSRF Tokens   β”‚    β”‚ β€’ Security Headersβ”‚   β”‚ β€’ Audit Logs   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

CI/CD Pipeline

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Commit    │──▢|   Security  │──▢│    Build    │───▢│   Deploy    β”‚
β”‚             β”‚    β”‚   Scanning  β”‚    β”‚   & Test    β”‚    β”‚             β”‚
β”‚ β€’ Code Push β”‚    β”‚ β€’ Bandit    β”‚    β”‚ β€’ TypeScriptβ”‚    β”‚ β€’ Vercel    β”‚
β”‚ β€’ PR Review β”‚    β”‚ β€’ ESLint    β”‚    β”‚ β€’ Unit Testsβ”‚    β”‚ β€’ OWASP ZAP β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ§ͺ Testing

Security Tests

# Run security linting
npm run lint:security

# Run dependency audit
npm audit

# Run Bandit scan
bandit -r . -f json

Unit Tests

# Run all tests
npm test

# Run with coverage
npm run test:coverage

πŸ“ˆ Monitoring & Logging

Security Monitoring

  • Authentication attempts logging
  • Failed login rate limiting
  • Suspicious activity detection
  • Error tracking and alerting

Performance Monitoring

  • Response time tracking
  • Database query optimization
  • Resource usage monitoring

πŸ”§ Configuration

Security Configuration

// middleware.ts
export const config = {
  matcher: [
    '/((?!_next/static|_next/image|favicon.ico).*)',
  ],
}

Database Configuration

-- Enable RLS on all tables
ALTER TABLE tasks ENABLE ROW LEVEL SECURITY;

-- Create security policies
CREATE POLICY "secure_access" ON tasks
    USING (auth.uid() = user_id);

πŸ“š Security Best Practices Implemented

  1. Authentication Security

    • Strong password requirements
    • Secure session management
    • JWT token validation
    • Automatic logout
  2. Data Protection

    • Input validation and sanitization
    • Output encoding
    • SQL injection prevention
    • XSS protection
  3. Infrastructure Security

    • HTTPS enforcement
    • Security headers
    • CSRF protection
    • Rate limiting
  4. Monitoring & Logging

    • Security event logging
    • Error tracking
    • Performance monitoring
    • Audit trails

🚨 Security Incident Response

Incident Response Plan

  1. Detection: Automated monitoring and alerting
  2. Assessment: Security team evaluation
  3. Containment: Immediate threat mitigation
  4. Recovery: System restoration and validation
  5. Lessons Learned: Post-incident analysis

πŸ§‘β€πŸ€β€πŸ§‘ Contributors

πŸ“ž Support & Contact

For security issues or questions:

  • Create an issue in the GitHub repository
  • Contact the security team at [email protected]
  • Review the security policy in SECURITY.md

πŸ“„ License

This project is licensed under the miT License

πŸ™ Acknowledgments

  • OWASP for security guidelines
  • Supabase for secure backend infrastructure
  • Next.js team for security-first framework
  • Security community for best Solutions

SecureTasker demonstrates enterprise-level security practices for modern web applications. Built with security-first principles and continuous monitoring.

About

SecureTasker -A comprehensive secure web-based task management application demonstrating enterprise-level security practices, OWASP compliance, and automated CI/CD pipeline integration.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •