| Server IP : 35.80.110.71 / Your IP : 216.73.216.21 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ip-172-31-21-44 6.17.0-1019-aws #19~24.04.1-Ubuntu SMP Tue Jun 23 18:53:06 UTC 2026 x86_64 User : ubuntu ( 1000) PHP Version : 8.3.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/client-portal-laravel/backup/docs/audit_templates/ |
Upload File : |
# Web Application Security Audit (Laravel)
This document provides a structured checklist and evaluation framework for performing a **security audit of a Laravel-based web application**. It is suitable for internal reviews, client deliverables, and pre-production security validation.
---
## Purpose
The Security Audit is intended to:
- Identify security risks and misconfigurations
- Validate adherence to Laravel and web security best practices
- Assess readiness for production deployment
- Provide actionable remediation guidance
---
## Audit Scope
Define the scope before starting the audit.
- **Application Name:**
- **Environment Audited:** (Local / Staging / Production)
- **Laravel Version:**
- **PHP Version:**
- **Audit Date:**
- **Auditor:**
---
## Risk Rating Scale
| Rating | Description | Score |
|------|------------|-------|
| **Low** | Minimal risk, best-practice improvement | 1 |
| **Medium** | Moderate risk, should be addressed | 2 |
| **High** | Serious risk, requires prompt attention | 3 |
| **Critical** | Active exploit or data exposure risk | 4 |
---
## 1. Authentication & Authorization
> **Applies to:** SaaS apps, client portals, internal admin panels
| Check | Status | Risk | Notes |
|------|-------|------|------|
| Authentication uses Laravel guards correctly | ⬜ | | |
| Passwords hashed using bcrypt/argon | ⬜ | | |
| Password reset tokens properly configured | ⬜ | | |
| Email verification enabled where required | ⬜ | | |
| Multi-factor authentication supported (if applicable) | ⬜ | | |
| Authorization enforced via policies/gates | ⬜ | | |
| No authorization logic in controllers/views | ⬜ | | |
---
## 2. Session & Cookie Security
| Check | Status | Risk | Notes |
|------|-------|------|------|
| Secure session driver configured | ⬜ | | |
| Session cookies set to `HttpOnly` | ⬜ | | |
| Session cookies set to `Secure` in production | ⬜ | | |
| SameSite policy correctly configured | ⬜ | | |
| Session timeout reasonable | ⬜ | | |
| Session fixation protections enabled | ⬜ | | |
---
## 3. Input Validation & Output Escaping
| Check | Status | Risk | Notes |
|------|-------|------|------|
| All request input validated via Form Requests | ⬜ | | |
| No reliance on client-side validation alone | ⬜ | | |
| Blade templates escape output by default | ⬜ | | |
| Raw output (`{!! !!}`) justified and reviewed | ⬜ | | |
| Protection against mass assignment issues | ⬜ | | |
---
## 4. CSRF, XSS & Injection Protection
| Check | Status | Risk | Notes |
|------|-------|------|------|
| CSRF protection enabled on all stateful routes | ⬜ | | |
| API routes correctly scoped (stateless vs stateful) | ⬜ | | |
| No dynamic SQL without bindings | ⬜ | | |
| Eloquent used instead of raw queries where possible | ⬜ | | |
| User input never directly rendered as HTML/JS | ⬜ | | |
---
## 5. API & Rate Limiting
| Check | Status | Risk | Notes |
|------|-------|------|------|
| API routes protected by authentication | ⬜ | | |
| Rate limiting enabled on public endpoints | ⬜ | | |
| Throttle limits appropriate for use case | ⬜ | | |
| API error responses do not leak sensitive data | ⬜ | | |
---
## 6. File Uploads & Storage
| Check | Status | Risk | Notes |
|------|-------|------|------|
| File uploads validated by type and size | ⬜ | | |
| Uploaded files stored outside public directory | ⬜ | | |
| User-uploaded files not executable | ⬜ | | |
| Signed URLs used for private downloads | ⬜ | | |
---
## 7. Environment & Configuration Security
| Check | Status | Risk | Notes |
|------|-------|------|------|
| `.env` file not accessible publicly | ⬜ | | |
| `APP_DEBUG=false` in production | ⬜ | | |
| `APP_KEY` set and rotated appropriately | ⬜ | | |
| Secrets not committed to repository | ⬜ | | |
| Correct filesystem and directory permissions | ⬜ | | |
---
## 8. Dependencies & Supply Chain
| Check | Status | Risk | Notes |
|------|-------|------|------|
| Composer dependencies up to date | ⬜ | | |
| Known vulnerabilities reviewed (e.g., `composer audit`) | ⬜ | | |
| No abandoned or unmaintained packages | ⬜ | | |
| Frontend dependencies audited | ⬜ | | |
---
## 9. Logging, Monitoring & Error Handling
| Check | Status | Risk | Notes |
|------|-------|------|------|
| Errors logged securely (no sensitive data) | ⬜ | | |
| Logs protected from public access | ⬜ | | |
| Centralized monitoring or alerts configured | ⬜ | | |
| Exception messages sanitized in production | ⬜ | | |
---
## 10. Infrastructure & Deployment (High-Level)
| Check | Status | Risk | Notes |
|------|-------|------|------|
| HTTPS enforced everywhere | ⬜ | | |
| HSTS enabled | ⬜ | | |
| Firewall rules restrict unnecessary access | ⬜ | | |
| CI/CD pipeline secrets protected | ⬜ | | |
| Zero-downtime deploy strategy in place | ⬜ | | |
| Production server access restricted | ⬜ | | |
---
## 11. SaaS & Client Portal–Specific Checks
| Check | Status | Risk | Notes |
|------|-------|------|------|
| Tenant isolation enforced at DB and app layers | ⬜ | | |
| No cross-tenant data exposure possible | ⬜ | | |
| Role-based access clearly defined | ⬜ | | |
| Client users restricted from admin routes | ⬜ | | |
| Subscription / plan limits enforced server-side | ⬜ | | |
---
## Security Findings Summary
| Finding | Severity | Score | Description | Recommendation | Status |
|--------|----------|-------|-------------|----------------|--------|
| | | | | | |
---
## Security Scoring Summary
| Severity | Count | Weighted Score |
|---------|-------|----------------|
| Critical | | |
| High | | |
| Medium | | |
| Low | | |
**Total Risk Score:**
---
| Finding | Severity | Description | Recommendation |
|--------|----------|-------------|----------------|
| | | | |
---
## Overall Security Assessment
- **Overall Risk Level:** (Low / Medium / High / Critical)
- **Production Readiness:** (Not Ready / Conditional / Ready)
### Assessment Notes
Summarize the security posture of the application in plain language suitable for non-technical stakeholders.
---
## Client-Safe Executive Summary
> This section is safe to share directly with clients or stakeholders.
**Summary:**
- Total findings:
- Critical issues:
- High-risk issues:
- Recommended remediation timeline:
**Client Impact Statement:**
Describe how the current security posture affects client data, reliability, and trust.
---
## Recommended Next Actions
- [ ] Address all Critical findings immediately
- [ ] Schedule remediation for High-risk findings
- [ ] Validate fixes with regression testing
- [ ] Re-run security audit after fixes
- [ ] Consider third-party penetration testing
---
## Audit Type
- **Pre-Launch Security Audit**: ⬜
- **Post-Launch / Ongoing Audit**: ⬜
---
## Example Findings (Reference)
| Finding | Severity | Description | Recommendation |
|--------|----------|-------------|----------------|
| Missing rate limiting on login endpoint | High | Brute-force attacks possible | Add Laravel throttle middleware |
| APP_DEBUG enabled in production | Critical | Sensitive stack traces exposed | Disable debug and clear config cache |
| File uploads stored in public directory | Medium | Risk of malicious file access | Move uploads to private storage |
---
*This document is intended to evolve alongside the application and should be revisited after major feature releases, dependency upgrades, or infrastructure changes.*