Skip to content

Security: DrJonBrock/luke-desktop

Security

SECURITY.md

Security Documentation

Tauri 2.x Security Features

Permission System

The application uses Tauri 2.x's enhanced permission system for secure access control:

  1. Core Permissions

    • Explicitly defined permissions for each capability
    • Granular control over API access
    • Window-specific permission sets
  2. File System Security

    • Path traversal protection
    • Secure file operations
    • Directory scoping
    • Permission guards on file operations
  3. IPC Security

    • Command permission validation
    • Message integrity checks
    • Scoped API access

Code Examples

  1. Permission Guards
fn attachment_guard<R: Runtime>(
    app: &AppHandle<R>,
    cmd: &tauri::command::CommandItem,
) -> Result<(), tauri::Error> {
    if cmd.message.permissions().contains(&"fs:default".parse().unwrap()) {
        Ok(())
    } else {
        Err(tauri::Error::PermissionDenied)
    }
}
  1. Secure Path Handling
let app_dir = app.path().app_data_dir()
    .ok_or("Could not resolve app data directory")?;
let attachments_dir = app_dir.join("attachments").clean();
let file_path = attachments_dir.join(&file_id).clean();
if !file_path.starts_with(&attachments_dir) {
    return Err("Invalid file path".to_string());
}
  1. Permission Configuration
{
  "security": {
    "capabilities": {
      "default-window-capabilities": {
        "permissions": [
          "core:default",
          "fs:default",
          "window:default"
        ]
      }
    }
  }
}

Best Practices

File Operations

  1. Always use path validation
  2. Implement proper error handling
  3. Use permission guards
  4. Validate file types
  5. Check file sizes
  6. Use proper scoping

API Security

  1. Validate all inputs
  2. Use proper error handling
  3. Implement rate limiting
  4. Use secure defaults
  5. Follow least privilege principle

Window Security

  1. Proper CSP configuration
  2. Limited domain access
  3. Secure IPC communication
  4. Permission-based API access

Security Checklist

  • Implement Tauri 2.x permission system
  • Add file system security measures
  • Configure secure window defaults
  • Implement permission guards
  • Add path validation
  • Configure CSP
  • Add authentication system
  • Implement audit logging
  • Add data encryption
  • Configure secure storage

Reporting Security Issues

Please report security issues to [[email protected]] or open a GitHub issue with the "Security" label.

There aren’t any published security advisories