Vogelalbum 1.0.0
Eine Kamera am Vogelhaus, ein Rechner der erkennt wer da war — und eine Sammlung, die sich von allein fuellt. Zwei neuronale Netze: eines findet den Vogel im Bild, eines bestimmt die Art. 148 heimische Arten, auf Deutschland eingeschraenkt und neu normiert — ohne diese Einschraenkung wird aus einer Kohlmeise eine nordamerikanische Schwesterart. Daraus entsteht ein Sammelalbum: nummerierte Seiten, gefundene Arten in Farbe, fehlende als Schatten, dazu Erstfang, Punkte, Stufen und 15 Abzeichen. Laeuft vollstaendig auf eigener Hardware. Kein Cloud-Dienst, kein Konto, keine Telemetrie; die Bilder verlassen das eigene Netz nicht. Zwei getrennt deploybare Teile: die Sammlung als Django-Anwendung, die Erkennung als eigener Dienst. Der Erkennungs-Dienst fragt selbst an und braucht deshalb weder eine erreichbare Adresse noch einen offenen Port — er laeuft hinter einem gewoehnlichen Router. Dabei: Firmware fuer Raspberry Pi und ESP32-S3, Anbindung an Home Assistant ueber MQTT, Oberflaeche auf Deutsch und Englisch, Einstellungen je Kamera aus dem Browser, und ein Weg fuer Fotos von unterwegs. AGPL-3.0.
This commit is contained in:
commit
c11fe9ab04
189 files changed
+29806
No files matched your search
+51
@@ -0,0 +1,51 @@
|
||||
# Sicherheitslücken melden
|
||||
|
||||
**Bitte nicht als öffentliches Issue.** Eine Lücke, die in einem Issue steht,
|
||||
ist eine Anleitung, solange sie nicht behoben ist.
|
||||
|
||||
**Melde sie an <webmaster@gaertner.onl>.** Vogelalbum ist ein Feierabendprojekt
|
||||
einer einzelnen Person — eine Antwort kann ein paar Tage dauern. Kommt nach
|
||||
einer Woche keine, gern noch einmal nachfassen; dann ist die Nachricht
|
||||
untergegangen.
|
||||
|
||||
Hilfreich in der Meldung:
|
||||
|
||||
- was betroffen ist (Web-App, Detector, Kameraseite) und welche Fassung
|
||||
- wie sich das Verhalten auslösen lässt, möglichst Schritt für Schritt
|
||||
- was dabei herauskommt und warum das ein Problem ist
|
||||
|
||||
Wer eine Lücke meldet und bis zur Behebung nicht veröffentlicht, wird — auf
|
||||
Wunsch — im Changelog namentlich genannt. Rechtliche Schritte gegen jemanden,
|
||||
der auf diesem Weg und in gutem Glauben meldet, gibt es nicht.
|
||||
|
||||
## Was unterstützt wird
|
||||
|
||||
Vogelalbum hat noch keine Version. Gefixt wird der aktuelle Stand von `main`.
|
||||
|
||||
## Womit zu rechnen ist
|
||||
|
||||
Ein paar Dinge sind **Absicht** und keine Lücke — damit niemand Zeit damit
|
||||
verliert:
|
||||
|
||||
- **Die Web-App hat keine Benutzerkonten.** Die Sammlung ist zum Ansehen da.
|
||||
Wer sie öffentlich stellt, stellt sie öffentlich. Geschützt sind nur der
|
||||
Django-Admin und das Upload-Formular.
|
||||
- **Die API-Token stehen in Umgebungsvariablen**, nicht in einem Tresor. In
|
||||
der Datenbank liegen sie als SHA-256.
|
||||
- **Der Detector erreicht die Web-App, nicht umgekehrt.** Die Verbindung geht
|
||||
nur in eine Richtung; das ist der Kern des Aufbaus und kein Versehen.
|
||||
- **Die Kameraseiten (`pi/`, `esp32cam/`) kennen keine Authentifizierung.** Sie
|
||||
gehören ins Heimnetz, nicht ans offene Internet. Wer den Stream nach außen
|
||||
gibt, legt selbst etwas davor.
|
||||
- **`VOGELALBUM_LIVE_ERLAUBT=0`** schaltet das Live-Bild hart ab, auch gegen einen
|
||||
Fehlklick im Admin. Auf einer öffentlichen Instanz gehört die Variable auf
|
||||
`0`.
|
||||
|
||||
## Was dagegen eine Meldung wert ist
|
||||
|
||||
- Lesen oder Schreiben von Sichtungen ohne gültigen Token
|
||||
- Herauskommen aus dem Admin-Login oder aus dem Upload-Formular
|
||||
- Pfade, über die sich Dateien außerhalb des Medienordners lesen oder
|
||||
schreiben lassen
|
||||
- alles, was aus einem hochgeladenen Bild Code macht
|
||||
- ein Token, das in Logs, in der Prozessliste oder in der Oberfläche landet
|
||||
Reference in new issue
Block a user