astro-security
Security patterns for Astro lead generation websites on Cloudflare. Forms, headers, bot protection, GDPR. Use for any production lead gen site.
Best use case
astro-security is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Security patterns for Astro lead generation websites on Cloudflare. Forms, headers, bot protection, GDPR. Use for any production lead gen site.
Teams using astro-security should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/astro-security/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How astro-security Compares
| Feature / Agent | astro-security | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Security patterns for Astro lead generation websites on Cloudflare. Forms, headers, bot protection, GDPR. Use for any production lead gen site.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Astro Security Skill Security patterns for lead generation sites. ## Core Rules (Non-Negotiable) | Violation | Result | |-----------|--------| | Production form without Turnstile + honeypot | **FAIL** | | Secret exposed client-side | **FAIL** | | User input stored without server validation | **FAIL** | | Indexable staging environment | **FAIL** | | Missing security headers | **FAIL** | | Cookie banner missing before analytics | **FAIL** | ## Form Security (Required) Every form must have: | Protection | Implementation | |------------|----------------| | Turnstile | Cloudflare captcha (invisible mode) | | Honeypot | Hidden field, reject if filled | | Rate limit | Max 5 submissions/IP/hour | | Validation | Server-side Zod, never trust client | | Sanitize | Strip HTML, trim whitespace | See [references/forms.md](references/forms.md). ## Security Headers (Required) **CSP Rules:** - MUST disallow inline scripts unless hashed - MUST restrict script-src to required domains only - MUST test in report-only before enforcement Add to `_headers`: ``` X-Content-Type-Options: nosniff X-Frame-Options: DENY X-XSS-Protection: 1; mode=block Referrer-Policy: strict-origin-when-cross-origin Permissions-Policy: camera=(), microphone=(), geolocation=() Content-Security-Policy: [see references] Strict-Transport-Security: max-age=31536000; includeSubDomains ``` See [references/headers.md](references/headers.md). ## Environment Variables ``` # .env.example (commit this) TURNSTILE_SITE_KEY= TURNSTILE_SECRET_KEY= RESEND_API_KEY= GOOGLE_SHEETS_ID= # .env (never commit) # Add to .gitignore ``` **Rules:** - Never expose secrets client-side - Use `import.meta.env` for public vars only - Validate all env vars on build ## Bot Protection **Cloudflare (free tier):** - Bot Fight Mode: ON - Security Level: Medium - Challenge Passage: 30 minutes **Application level:** - Turnstile on all forms - Honeypot fields - Rate limiting per IP - Block empty referrer (optional) ## Third-Party Scripts - Use SRI (integrity hash) for CDN scripts - Load async/defer - Minimize scripts - Review GTM tags regularly ## GDPR Compliance **Required:** - Cookie banner (before non-essential cookies) - Privacy policy page - Form consent checkbox (if marketing) - Data retention policy - Right to deletion process **Cookie categories:** | Type | Consent | Examples | |------|---------|----------| | Necessary | No | Session, CSRF | | Analytics | Yes | GA4, Hotjar | | Marketing | Yes | Meta Pixel, Google Ads | See [references/gdpr.md](references/gdpr.md). ## Input Validation **Never:** Trust client-side alone, store raw input, render unsanitized HTML. See forms.md for Zod schemas. ## File Uploads If needed: Max 5MB, whitelist types, rename files, store outside webroot. ## Staging Protection Password protect OR Cloudflare Access. Add `noindex`, block in robots.txt. ## Error Handling - Error messages MUST NOT reveal stack traces or internals - API errors MUST return generic messages (`Something went wrong`) - Detailed errors allowed ONLY in development - 404/500 pages must not leak tech stack info ## Dependencies - Minimize third-party scripts - Remove unused dependencies before launch - Review third-party access quarterly - Prefer self-hosted over CDN when possible ## Definition of Done Security requirements before launch: - [ ] Turnstile on all forms - [ ] Honeypot fields added - [ ] Rate limiting configured - [ ] Security headers set - [ ] HTTPS enforced - [ ] .env in .gitignore - [ ] No secrets in client code - [ ] Cookie banner working - [ ] Privacy policy linked - [ ] Staging protected - [ ] Error pages don't leak info ## References - [forms.md](references/forms.md) — Form security patterns - [headers.md](references/headers.md) — CSP and headers - [gdpr.md](references/gdpr.md) — GDPR compliance
Related Skills
dotnet-security-owasp
Hardens .NET apps per OWASP Top 10 -- injection, auth, XSS, deprecated security APIs.
devs:security-core
Comprehensive application security expertise covering authentication, authorization, OWASP Top 10, and security best practices. Use when (1) Implementing authentication (JWT, OAuth2, sessions, OAuth for CLI/TUI/desktop apps), (2) Adding authorization (RBAC, ABAC, RLS with Supabase/PostgreSQL), (3) Security auditing code or infrastructure, (4) Setting up security infrastructure (headers, CORS, CSP, rate limiting), (5) Managing secrets and credentials, (6) Preventing OWASP Top 10 vulnerabilities (injection, XSS, CSRF, etc.), (7) Reviewing code for security issues, (8) Configuring secure web applications in TypeScript, Python, or Rust. Automatically triggered when working with authentication/authorization systems, security reviews, or addressing security vulnerabilities.
dcyfr-security
CodeQL suppressions, security vulnerability troubleshooting, and security best practices
data-security
Assess data security controls: classification, access, encryption, retention, and exposure risk.
container-security-scanner
Scan images and runtime for CVEs and policy violations.
Build Your Cloud Security Skill
Create your cloud security skill in one prompt, then learn to improve it throughout the chapter
azure-security-keyvault-keys-dotnet
Azure Key Vault Keys SDK for .NET. Client library for managing cryptographic keys in Azure Key Vault and Managed HSM. Use for key creation, rotation, encryption, decryption, signing, and verification.
aws-security-audit
Comprehensive AWS security posture assessment using AWS CLI and security best practices
awesome-copilot-root-stackhawk-security-onboarding
Automatically set up StackHawk security testing for your repository with generated configuration and GitHub Actions workflow Use when: the task directly matches stackhawk security onboarding responsibilities within plugin awesome-copilot-root. Do not use when: a more specific framework or task-focused skill is clearly a better match.
astro-testing
Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.
architecting-security
Design comprehensive security architectures using defense-in-depth, zero trust principles, threat modeling (STRIDE, PASTA), and control frameworks (NIST CSF, CIS Controls, ISO 27001). Use when designing security for new systems, auditing existing architectures, or establishing security governance programs.
arch-security-review
Use when reviewing code for security vulnerabilities, implementing authorization, or ensuring data protection.