Astro-Blogkommentare nur mit Cloudflare umsetzen
Inhaltsverzeichnis
Kommentare bringen Zustand in eine statische Website.
Acecore hat keinen externen Kommentardienst eingebettet. In PR #101 wurde die Funktion nur mit Cloudflare umgesetzt.
- Astro rendert die UI.
- Cloudflare Pages Functions stellt
/api/commentsbereit. - Cloudflare D1 speichert Kommentare.
- Cloudflare Turnstile schützt POST-Anfragen.
wrangler.jsonctrennt preview und production.
Der Vorteil: Der Kommentarbereich bleibt Teil der bestehenden Cloudflare-Architektur.
Aufbau
| Ebene | Datei oder Dienst |
|---|---|
| UI | src/components/BlogComments.astro |
| Einbindung | src/views/BlogPostPage.astro |
| API | functions/api/comments.ts |
| Speicher | D1-Binding COMMENTS_DB |
| Schutz | Cloudflare Turnstile |
| Schema | migrations/0001_create_blog_comments.sql |
Die UI lädt mit GET /api/comments?slug=...&locale=... und sendet mit POST /api/comments.
Die Function validiert Origin, Payload, Turnstile, Limits, Duplikate und blockierte Inhalte.
Warum D1
Kommentare brauchen SQL-nahe Operationen: nach Artikel filtern, nach Zeit sortieren, mit deleted_at ausblenden, Duplikate finden und Clients begrenzen.
Sichtbar sind nur Zeilen mit deleted_at IS NULL. Spam kann so ausgeblendet werden, ohne die Zeile sofort zu löschen.
Prepared Statements mit bind() verhindern, dass Benutzereingaben direkt in SQL-Strings landen.
Wrangler als Vertrag
COMMENTS_DB wird in wrangler.jsonc definiert. Preview nutzt acecore-comments-preview, production nutzt acecore-comments-production.
So schreibt eine PR-Preview nicht in die Produktionsdatenbank.
Turnstile serverseitig prüfen
Das Browser-Widget reicht nicht aus. Die Pages Function validiert den Token über Cloudflare Siteverify mit TURNSTILE_SECRET_KEY.
Außerdem wird der zurückgegebene Hostname gegen eine Allowlist geprüft.
Spam-Schutz
Die erste Version ist bewusst streng:
- keine URLs
- keine E-Mail-Adressen
- kein HTML
- keine Markdown-Links
- keine langen Wiederholungen
- keine typischen Werbewörter
- Honeypot-Feld
Rate Limits laufen im Speicher und zusätzlich persistent über D1. Der Client wird als gesalzener Hash gespeichert, nicht als rohe IP.
SEO
Kommentare werden clientseitig geladen und der Bereich nutzt data-pagefind-ignore. Sie werden also nicht als Hauptinhalt indexiert.
Für einen Unternehmensblog ist diese Trennung sinnvoll.
Fazit
Externe Kommentardienste sind bequem, aber nicht zwingend.
Mit Cloudflare Pages, Pages Functions, D1, Turnstile und Wrangler lässt sich eine leichte Kommentarfunktion vollständig innerhalb von Cloudflare betreiben.
Referenzen
Warum kein externer Dienst?
Reicht D1 für Kommentare?
Reicht Turnstile im Browser?
Kommentare
Gui
CEO von Acecore. Steuert Geschäftssysteme, Web, Datenbanken und Infrastruktur, Qualität und KI-Einsatz von der Analyse geschäftlicher Probleme über Design und Einführung bis zur Verbesserung nach dem Launch. Baut auf praktischer C#/.NET-Kompetenz auf und berücksichtigt zugleich PHP/JavaScript, SQL Server/PostgreSQL/MySQL und Linux/Windows Server, um Anforderungen, Technologieauswahl, Qualitätsstandards und GitHub-basierte Entwicklungsabläufe als kohärenten Prozess zu gestalten. Integriert generative KI in Entwicklungs-, Prüfungs- und Informationsorganisationsprozesse, als praktische Grundlage, damit kleine Teams schneller und verlässlicher liefern können.
Möchten Sie mehr über unsere Dienste erfahren?
Wir bieten umfassende Unterstützung, einschließlich Systementwicklung, Webdesign, Grafikdesign und IT-Bildung.
Verwandte Artikel
Eine Astro + Cloudflare Website Schritt für Schritt erweitern 7. Juni 2026 um 19:00
Sveltia CMS Einrichtungsleitfaden 7. Juni 2026 um 16:00