astro-security

Security patterns for Astro lead generation websites on Cloudflare. Forms, headers, bot protection, GDPR. Use for any production lead gen site.

16 stars

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

$curl -o ~/.claude/skills/astro-security/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/testing-security/astro-security/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/astro-security/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How astro-security Compares

Feature / Agentastro-securityStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/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

16
from diegosouzapw/awesome-omni-skill

Hardens .NET apps per OWASP Top 10 -- injection, auth, XSS, deprecated security APIs.

devs:security-core

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

CodeQL suppressions, security vulnerability troubleshooting, and security best practices

data-security

16
from diegosouzapw/awesome-omni-skill

Assess data security controls: classification, access, encryption, retention, and exposure risk.

container-security-scanner

16
from diegosouzapw/awesome-omni-skill

Scan images and runtime for CVEs and policy violations.

Build Your Cloud Security Skill

16
from diegosouzapw/awesome-omni-skill

Create your cloud security skill in one prompt, then learn to improve it throughout the chapter

azure-security-keyvault-keys-dotnet

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Comprehensive AWS security posture assessment using AWS CLI and security best practices

awesome-copilot-root-stackhawk-security-onboarding

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Testing and QA gate for Astro lead gen sites. Manual + E2E + A11y + Performance. FAIL = no deploy.

architecting-security

16
from diegosouzapw/awesome-omni-skill

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

16
from diegosouzapw/awesome-omni-skill

Use when reviewing code for security vulnerabilities, implementing authorization, or ensuring data protection.