AI-driven web pentest with human-in-the-loop review, guided by django-security skill checklist. Local and live verification completed. Browser security-tool integrations reviewed and remediated.
Assessment followed Django-focused controls from django-security:
Initial local audit found medium and low-risk issues in CSP, cookie flags, upload sanitization, clickjacking protection, and password-breach response shape. Those items were remediated. Follow-up live verification on sandbox99.cc passed with no new critical or medium findings.
Later browser verification of landing-page security tools found two integration issues: AJAX CSRF token retrieval broke after CSRF_COOKIE_HTTPONLY = True hardening, and CSP blocked third-party IP-detection APIs. Both issues were fixed without weakening core security posture.
sandbox99.local)| Category | Tests | Result |
|---|---|---|
| CSRF Protection | 3 | Pass |
| Stored XSS | 4 | Pass |
| SQL Injection | 5 | Pass |
| Path Traversal | 6 | Pass |
| Open Redirect | 3 | Pass |
| Auth Bypass | 4 | Pass |
| File Upload | 3 | Pass |
| Rate Limiting | 2 | Pass |
| Security Headers | 7 | Pass With Findings |
| Cookie Security | 2 | Findings |
| Session Management | 2 | Pass |
| Total | 41 | 39 pass / 2 fail initially |
sandbox99.cc)| Category | Tests | Result |
|---|---|---|
| Security Headers | 8 | Pass |
| CSRF Protection | 2 | Pass |
| Stored XSS | 2 | Pass |
| SQL Injection | 4 | Pass |
| Path Traversal | 2 | Pass |
| Open Redirect | 2 | Pass |
| Host Header | 1 | Pass |
| Auth Bypass | 3 | Pass |
| Rate Limiting | 2 | Pass |
| Cookie Security | 2 | Pass |
| SSRF | 1 | Pass |
| Total | 29 | 29 pass |
sandbox99.local)Checked landing-page tools that call third-party services:
Result:
csrftoken from document.cookie after HttpOnly enabled.connect-src 'self' blocked browser fetches to external IP APIs.| ID | Finding | Severity | Status |
|---|---|---|---|
| F-001 | Missing Content-Security-Policy header | Medium | Resolved |
| F-002 | CSRF cookie missing HttpOnly | Medium | Resolved |
| F-003 | CSRF cookie missing Secure | Medium | Resolved |
| F-004 | X-Frame-Options overridden to SAMEORIGIN | Low | Resolved |
| F-005 | UploadedPage save() not re-sanitizing on update | Low | Resolved |
| F-008 | Password breach API returned exact breach count | Info | Resolved |
| F-009 | Browser AJAX CSRF token retrieval broken after HttpOnly hardening | Info / Functional security | Resolved |
| F-010 | CSP blocked external IP-detection APIs | Info / Functional security | Resolved |
| ID | Finding | Severity | Notes |
|---|---|---|---|
| F-006 | UploadedPage extension validator checks extension only | Low | Add magic-byte or MIME validation |
| F-007 | Comment form lacks dedicated IP-based rate limiting | Low | Math captcha present; abuse friction exists |
403 without valid token404429 after thresholdContent-Security-Policy, Strict-Transport-Security, X-Frame-Options: DENY, X-Content-Type-Options: nosniff, Cross-Origin-Opener-Policy: same-originHttpOnly; Secure; SameSite=Lax/api/scan-url/, /api/check-password/, /api/check-email/, /api/check-domain/, /api/whois/, /api/dns-lookup/connect-src allow-list updated for https://api4.ipify.org, https://api6.ipify.org, https://api4.my-ip.io, https://api6.my-ip.ioblog/jinja2/blog/base.htmlgetCsrf() in blog/static/blog/js/widgets.jswidgets.min.js and home.min.jsX-Frame-Options: DENYconnect-src for external IP-detection APIsCurrent residual risk is low.
503 externally.Pentest using django-security guidance found multiple hardening gaps and two browser-security integration issues. All medium findings were fixed. Live production verification passed. Remaining exposure is low and centered on optional hardening improvements, not active exploitable gaps in tested unauthenticated flows.
Standalone HTML report. Inline CSS only. No JavaScript.