Zum Inhalt springen
Acecore
Inhaltsverzeichnis
Astro-Blogkommentare nur mit Cloudflare umsetzen

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/comments bereit.
  • Cloudflare D1 speichert Kommentare.
  • Cloudflare Turnstile schützt POST-Anfragen.
  • wrangler.jsonc trennt preview und production.

Der Vorteil: Der Kommentarbereich bleibt Teil der bestehenden Cloudflare-Architektur.

Aufbau

EbeneDatei oder Dienst
UIsrc/components/BlogComments.astro
Einbindungsrc/views/BlogPostPage.astro
APIfunctions/api/comments.ts
SpeicherD1-Binding COMMENTS_DB
SchutzCloudflare Turnstile
Schemamigrations/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

FAQ
Warum kein externer Dienst?
Externe Dienste sind schnell integriert, aber UI, Daten, Scripts, Moderation und Migration hängen vom Dienst ab. Hier bleibt alles in der Website und bei Cloudflare.
Reicht D1 für Kommentare?
Für post_slug-Abfragen, Sortierung, Soft Delete, Rate Limits und Duplikate passt D1 gut.
Reicht Turnstile im Browser?
Nein. Die Pages Function muss den Token per Siteverify prüfen, bevor sie in D1 schreibt.

Kommentare

Kommentare werden geladen...

Links, E-Mail-Adressen und Werbetexte können nicht veröffentlicht werden.

G

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.

Geschäftsproblem-AnalyseTechnologieauswahlSystemdesignC#/.NETDatenbank-/InfrastrukturdesignGitHub-EntwicklungsbetriebGenerative KIKI-Workflow-DesignQualitätsdesignVor-Ort-Integration

Möchten Sie mehr über unsere Dienste erfahren?

Wir bieten umfassende Unterstützung, einschließlich Systementwicklung, Webdesign, Grafikdesign und IT-Bildung.

Verwandte Artikel

Artikel suchen