BulkTranslate ist ein privates Web-Tool zur parallelen Übersetzung via Google Translate über rotierende Elite-Proxies. Es ist nicht für Production-Internet-Exposure gedacht. Dieses Dokument beschreibt, wie sicherheitsrelevante Befunde gemeldet werden und welche Architektur-Annahmen gelten.
- Deployment in einem vertrauenswürdigen Netz (lokal, intern, VPN-only).
- Authentifizierung dient der Personalisierung (Achievement-Counter), nicht als Zugriffsschutz für sensible Daten.
- Es werden keine personenbezogenen Daten verarbeitet außer der bei Login eingegebenen E-Mail-Adresse.
- Übersetzte Texte werden nicht persistiert und verlassen den Server nur Richtung Google Translate über den ausgewählten Proxy.
Diese Punkte sind dokumentiert und priorisiert für nachfolgende Arbeiten:
| Befund | Komponente | Status |
|---|---|---|
| Login nur per E-Mail (kein Passwort/Token) | includes/login.ajax.php |
dokumentiert |
SQL-Konstruktion mit String-Konkatenation trotz mysqli_real_escape_string |
includes/login.ajax.php, INSERT-Block |
Prepared Statements empfohlen |
error_reporting(E_ALL) in Production-relevanten Endpoints |
mehrere .ajax.php |
für Production auf 0 setzen + Logging |
Output ohne htmlspecialchars() in index.php |
index.php (echo $login, echo $logout) |
trivial-XSS-Pfad |
| Free-Proxy-Pool aus Drittquellen | manageProxies.ajax.php |
Vertrauen gegenüber Proxy-Betreibern beschränkt |
Maßnahmen werden in separaten PRs ausserhalb der reinen Repo-Hygiene umgesetzt.
Da das Repo privat ist:
- Kein öffentliches GitHub-Issue für Security-Findings — diese privat per E-Mail an den Repo-Owner.
- Befund mit folgenden Angaben:
- Betroffene Komponente (Datei + Zeilenbereich)
- Reproduktion (Schritte, Payload)
- Beobachteter Impact
- Vorschlag zur Mitigation (optional)
- Response-Erwartung: Best-Effort, da Hobby-Projekt.
- Brute-Force gegen Login (rate-limiting nicht implementiert — Login ist E-Mail-only).
- Proxy-Quality (externe Anbieter, keine Garantie).
- Google-Translate-API-Stabilität (kein offizielles API).
includes/config.inc.phpist via.gitignoreaus dem Tracking ausgeschlossen.- Beim Setup wird
config.inc.php.exampleals Template kopiert; reale Credentials gehören nicht ins Repo. - Falls Credentials versehentlich committed werden: betroffene Credentials rotieren, History mit
git filter-repobereinigen, Force-Push koordinieren.