AI‑Crawler‑Blockierung mit Nginx Cookie‑Filter
Durch eine einfache Nginx‑Konfiguration, die auf einem Cookie‑Filter basiert, lassen sich AI‑Crawler effektiv blockieren, ohne die Benutzererfahrung stark zu beeinträchtigen.
Hintergrund
Der Autor hostet Projekte auf Forgejo und sah sich durch massiven Crawling‑Traffic (z.b. API‑Anfragen, die jeden Commit ab) mit Systemabstürzen konfrontiert.
Ergebnisse und Fazit
Die Lösung erfordert, dass Benutzer JavaScript aktiviert haben – akzeptiert der Autor, weil das den meisten Nutzern keine zusätzliche Belastung bedeutet. Er gibt an, dass diese Methode leicht zu umgehen sei und bei höherem Volumen eventuell auf robustere Lösungen wie Anubis oder iocaine umgestellt werden muss. Der Artikel endet mit der Hoffnung, dass andere den Ansatz nutzen können, und betont gleichzeitig die Notwendigkeit, die Effektivität zu überwachen, falls sich die Crawler‑Technik weiterentwickelt.
Konfiguration
- Im
location /Block werden alle Anfragen geprüft. - Git‑/Git‑LFS‑User‑Agenten (
git/|git-lfs/) dürfen direkt zugreifen. - Falls ein Cookie namens
Yogsototh_opens_the_doorgesetzt ist, wird der Zugriff ebenfalls erlaubt. - Fehlen beide Bedingungen, wird ein
418‑Header zurückgegeben, der einen HTML‑Script enthält:
<script>
document.cookie = "Yogsototh_opens_the_door=1; Path=/;";
window.location.reload();
</script>
Ergebnisse und Fazit
Die Lösung erfordert, dass Benutzer JavaScript aktiviert haben – akzeptiert der Autor, weil das den meisten Nutzern keine zusätzliche Belastung bedeutet. Er gibt an, dass diese Methode leicht zu umgehen sei und bei höherem Volumen eventuell auf robustere Lösungen wie Anubis oder iocaine umgestellt werden muss. Der Artikel endet mit der Hoffnung, dass andere den Ansatz nutzen können, und betont gleichzeitig die Notwendigkeit, die Effektivität zu überwachen, falls sich die Crawler‑Technik weiterentwickelt.
Quelle
Quelle: https://her.esy.fun/posts/0031-how-i-protect-my-forgejo-instance-from-ai-web-crawlers/index.html
Related queries
- Wie ändere ich den Cookie‑Namen in der Nginx‑Konfiguration?
- Was ist der Unterschied zwischen Status 418 und 302 beim Blockieren von Crawlers?
- Wie verhindert die Git‑User-Agent‑Erkennung die Blockierung von legitimen Klon‑Anfragen?
