Skip to content

Security Checklist (Backend API)

This checklist is aligned to a practical OWASP API baseline for this project.

Automated Gates

  1. php artisan security:baseline
  2. php artisan openapi:lint
  3. php artisan test tests/Feature/PlatformHardeningApiTest.php
  4. php artisan test tests/Feature/AuthApiTest.php
  5. php artisan test tests/Feature/FeatureRolloutCommandTest.php

Baseline Controls

ControlPurposeAutomated Gate
APP_KEY setPrevent weak crypto defaultssecurity:baseline
Login throttling (AUTH_LOGIN_*)Reduce credential stuffing risksecurity:baseline, AuthApiTest
Password minimum lengthEnforce account credential qualitysecurity:baseline, AuthApiTest
API auth coverageEnsure non-public API routes require token authsecurity:baseline
API permission coverageEnsure management APIs are permission-guardedsecurity:baseline
Production hardening checksPrevent debug/unsafe cookie/queue misconfig in prodsecurity:baseline
Tracing propagationKeep request correlation via traceparent and X-Trace-IdPlatformHardeningApiTest
Feature rollout persistenceSafe module rollout by tenant/role scopeFeatureRolloutCommandTest
OpenAPI qualityKeep API contract maintainable and reviewableopenapi:lint

OWASP API Mapping (Practical)

  • API1 Broken Object Level Authorization:
    • Tenant boundary checks and permission middleware.
  • API2 Broken Authentication:
    • Sanctum token flow + rate-limited login.
  • API3 Broken Object Property Level Authorization:
    • FormRequest validation + service-layer controlled mutations.
  • API4 Unrestricted Resource Consumption:
    • Login throttling + async audit queue + cursor pagination.
  • API5 Broken Function Level Authorization:
    • Route-level api.permission:* enforcement.
  • API6 Unrestricted Access to Sensitive Business Flows:
    • Security baseline route coverage checks.
  • API8 Security Misconfiguration:
    • Production hardening checks in security:baseline.
  • API10 Unsafe Consumption of APIs:
    • OpenAPI lint + contract snapshot gates.
  1. php artisan openapi:lint
  2. php artisan security:baseline
  3. php artisan api:contract-snapshot
  4. php artisan test

Pair with Obsidian Admin Vue for the full contract-driven stack.