Wie das gebaut ist

Sicherheit und Ihre Daten

Zuletzt aktualisiert: 28. August 2026 · Diese Seite beschreibt, wie das Produkt heute arbeitet, nicht wie wir es uns wünschen

Sie geben einer Website Ihre Anlagehistorie, also dürfen Sie wissen, was damit geschieht. Diese Seite sagt, was wir speichern, was wir nie sehen, wie Ihr Konto geschützt ist und wo alles läuft. Wo etwas schwächer ist, als Sie annehmen würden, steht das hier ebenfalls.

Wir fassen Ihr Broker-Konto nie an

Es gibt im ganzen Produkt kein Broker-Login. Sie laden den Export bei Ihrem Broker selbst herunter und laden diese Datei hoch. Wir fragen nie nach einem Broker-Passwort, wir halten kein Token und keinen API-Schlüssel für Ihr Konto, und kein Teil des Codes kann eine Order aufgeben, Geld bewegen oder Ihren Kontostand beim Broker lesen. Das ist eine Eigenschaft der Bauweise, kein Versprechen über unser Verhalten: die Verbindung existiert nicht.

Was wir aus einem Export behalten

Ein Broker-Export ist eine breite Tabelle. Wir lesen einen festen Satz Spalten und speichern eine Zeile pro Transaktion mit diesen Feldern: Datum und Uhrzeit, Typ, ISIN, Tickersymbol, Produktname, Stückzahl, Kurs, Währung, Betrag, den in Euro umgerechneten Betrag, die Gebühren, den verwendeten Wechselkurs und ein freies Textfeld. Dieses letzte Feld ist die Beschreibungszeile, die Ihr Broker in die Zeile schreibt, etwa ein Hinweis auf eine Dividende oder auf eine Kapitalmaßnahme, und es wird bei 500 Zeichen abgeschnitten.

Jede Zeile durchläuft eine Prüfung, bevor sie gespeichert wird. Eine ISIN, die nicht die Form einer ISIN hat, wird nicht als Text behalten, sondern durch einen aus dem Tickersymbol abgeleiteten Schlüssel ersetzt. Ein Währungscode, der kein gültiger ISO-4217-Code ist, wird geleert statt gespeichert. Namen und Notizen werden gekürzt und von Steuerzeichen befreit. Datumsangaben außerhalb eines vernünftigen Fensters werden wieder hineingezogen. Diese Prüfung verhindert, dass ein seltsamer Export die Berechnung zerlegt, und hat den Nebeneffekt, dass ungewöhnlicher Inhalt einer Spalte nicht unversehrt in der Datenbank landet.

Laden Sie zusätzlich eine Portfolioübersicht hoch, also die Momentaufnahme dessen, was Sie heute halten, behalten wir fünf Dinge pro Zeile: den Instrumentenschlüssel, den Namen, die Stückzahl, den Kurs und den Wert. Jede andere Spalte dieser Datei wird ignoriert.

Die Datei selbst behalten wir nicht. Sie wird im Arbeitsspeicher gelesen und danach verworfen; übrig bleiben der Dateiname, der erkannte Broker, die Zahl der Zeilen und eventuelle Warnungen, damit Ihre Upload-Historie lesbar ist.

Was wir nie bekommen

Wir bekommen nie ein Broker-Passwort und kein Broker-Login. Kartendaten gehen zu Stripe und erreichen unsere Server nie. Das Produkt fragt nie nach Ihrem Namen, Ihrer Adresse, Ihrem Geburtsdatum oder einer Bankverbindung, und die Importer lesen diese Spalten auch dann nicht, wenn ein Broker sie in die Datei schreibt. Das einzige persönliche Datum, das das Konto braucht, ist eine E-Mail-Adresse, dazu Ihre Sprach- und Währungseinstellung.

Eine Ausnahme gehört genannt. Für ein Dateiformat, das wir nicht erkennen, ordnen Sie die Spalten einmal selbst zu. Dieser Zuordner speichert genau die Spalten, auf die Sie zeigen; zeigen Sie also auf eine Spalte mit etwas Persönlichem darin, wird genau das gespeichert.

Passwörter und Sitzungen

Sie können sich auf drei Wegen anmelden: mit Google, mit E-Mail-Adresse und Passwort, oder mit einem Anmeldelink, den wir Ihnen mailen, womit es gar kein Passwort gibt. Setzen Sie doch eines, wird es als PBKDF2-HMAC-SHA256-Hash mit 480.000 Iterationen und einem frischen Zufallssalt pro Passwort gespeichert. Das Passwort selbst wird nirgends festgehalten. Die Iterationszahl steht im Hash, kann also später erhöht werden, ohne jemanden auszusperren: ein alter Hash wird bei der nächsten Anmeldung dieser Person still ersetzt. Die Mindestlänge sind 10 Zeichen, und eine IP-Adresse bekommt 25 Passwortversuche pro Stunde.

Eine Sitzung ist ein signiertes Cookie. Es ist HttpOnly, kein Skript kann es also lesen, es ist SameSite=Lax, und es ist Secure, sobald die Site über https läuft, was in der Produktion immer der Fall ist. Es hält 180 Tage und wird aufgefrischt, solange Sie die App benutzen. Im Cookie steckt außerdem ein Zähler, der zu Ihrem Konto gehört, und das Abmelden erhöht diesen Zähler: Abmelden beendet damit jede Sitzung, die Sie irgendwo haben, nicht nur die vor Ihnen.

Unterwegs und im Browser

Die Site wird über https ausgeliefert. Sie sendet Strict-Transport-Security mit einem Jahr max-age einschließlich Subdomains, sodass ein Browser, der die Site einmal gesehen hat, es nicht noch einmal über einfaches http versucht. Die Content Security Policy erlaubt nur Skripte von unserer eigenen Domain, weshalb es auf der Site und im Dashboard kein einziges Fremdskript gibt. Framing wird über X-Frame-Options und frame-ancestors abgelehnt, Content-Type-Sniffing ist aus, der Referrer wird bei Navigation auf fremde Sites gekürzt, und Standort, Mikrofon und Kamera sind gesperrt. Zwei Dinge verlassen die Seite in Richtung eines Dritten. Die Schrift wird von Google Fonts geholt, und Browserfehler gehen an Sentry in dessen europäischer Region, sodass eine Seite, die bei Ihnen kaputtgeht, für uns sichtbar wird. Sentry ist in der Datenschutzerklärung bei den übrigen Auftragsverarbeitern genannt.

Wo es läuft

Die API, beide geplanten Jobs und die Datenbank samt Volume laufen auf Railway in EU West Metal, Amsterdam (europe-west4-drams3a), und zwar seit dem 28. August 2026. Die Website liefert Vercel aus, das Netzwerk läuft über Cloudflare, Zahlungen laufen über Stripe und E-Mail über Resend. Wer davon was verarbeitet, steht in der Datenschutzerklärung.

Was ein Freigabelink zeigt und was nicht

Ein Freigabelink ist freiwillig und aus, bis Sie ihn einschalten. Tun Sie das, wird ein zufälliges Token zur Adresse einer reinen Leseseite; schalten Sie ihn aus, ist diese Adresse sofort ungültig.

Besucher sehen Ihre Positionen und wie sie gelaufen sind, nicht Ihren Kontostand und nicht Ihre Einzahlungen. Es lohnt sich, genau zu sein, was dieser Satz abdeckt. Die Seite verbirgt Ihren Kontostand, sie verbirgt jede Einzahlung, die Sie gemacht haben, und sie verbirgt die daraus berechneten Summen. Was sie nicht verbirgt, ist der Wert der einzelnen Position: jede Position wird mit ihrem Betrag in Euro geteilt, wer den Link hat, kann diese Beträge also addieren und kommt so auf den Wert Ihres investierten Portfolios. Ist das eine Zahl, die Sie lieber nicht veröffentlichen, schalten Sie den Link nicht ein.

Das Vorschaubild, das Chat-Apps und soziale Netzwerke zu einem Freigabelink zeigen, enthält ausschließlich Prozentwerte.

Ihre Daten mitnehmen und löschen

Der Export ist ein Knopf in den Kontoeinstellungen. Sie bekommen alles als JSON: Ihren Kontodatensatz, jede gespeicherte Transaktion mit allen Feldern, Ihre Upload-Historie und Ihre Einstellungen.

Das Löschen ist ebenfalls ein Knopf, mit getippter Bestätigung. Es entfernt Ihre Transaktionen, Uploads, gespeicherten Spaltenzuordnungen, Portfolio-Momentaufnahmen, Anfangspositionen, Einstellungen und das Konto selbst. Zwei kleine Register bleiben absichtlich stehen, und beide enthalten nichts als einen unumkehrbaren gesalzenen Hash Ihrer E-Mail-Adresse und das Datum, an dem eine kostenlose Testphase begann. Eines wird nach einem Jahr aufgeräumt; das andere bleibt, weil ein ablaufendes Register derselben Person eine unendliche Reihe kostenloser Testphasen bescheren würde. Keines lässt sich in eine Adresse zurückrechnen.

Anmeldungen und Missbrauch

Die Registrierung mit einer Wegwerf-Mail-Domain wird abgelehnt, gegen eine Blockliste von 8.335 Domains. Weiterleitungs- und Aliasdienste werden zuerst geprüft und sind ausdrücklich erlaubt: Apple Hide My Email, Firefox Relay, DuckDuckGo, SimpleLogin und addy.io funktionieren, denn die Menschen, die sie nutzen, sind genau die Menschen, für die diese Seite geschrieben ist.

Was wir mit Ihren Daten nicht tun

Es gibt keine Werbung und wir verkaufen keine Daten. Auf der Site liegt kein Analysedienst eines Dritten, kein Trackingpixel und kein Werbecookie; die Content Security Policy oben würde eines blockieren, wenn es versehentlich dazukäme. Sentry bekommt Fehlermeldungen, nie Seitenaufrufe. Was wir messen, sind sechs Meilensteine pro Konto, etwa dass eine erste Datei hochgeladen und dass der Vergleich gezeigt wurde, auf unseren eigenen Servern als Meilenstein und Datum festgehalten. Ihr Abo bezahlt das alles.

Ein Sicherheitsproblem melden

Schreiben Sie an security@bullbenchmark.com, mit dem, was Sie gefunden haben, und wie man es nachstellt. Diese Adresse liest ein Mensch, und Sie bekommen eine Antwort. Zwei Bitten: lassen Sie keine automatischen Scans gegen den Livedienst laufen, und benutzen Sie nicht das Konto oder die Daten einer anderen Person, um einen Fund zu zeigen. Eine Beschreibung reicht uns, um ihn selbst nachzustellen.

Fragen, die keine Sicherheitsmeldung sind, gehen an support@bullbenchmark.com. Was wir rechtlich mit personenbezogenen Daten tun, steht in der Datenschutzerklärung; die Vereinbarung selbst steht in den AGB.