Deutsch

Developer Data Toolkit – Fragen

Wie das Toolkit mit Ihren Daten umgeht, welche Dienstprogramme genau sind und wo jedes einzelne absichtlich aufhört.

Die Kurzversion

Jedes Dienstprogramm hier wird in Ihrem Browser-Tab ausgeführt. Nichts, was Sie einfügen, wird von einem ToolAcre-Anwendungsserver hochgeladen oder gespeichert. Siteweite Analysen laufen nur auf dem konfigurierten kanonischen Produktionshost und werden in der Datenschutzrichtlinie offengelegt; Eingefügte Werte sind von ToolAcres eigenen Analyseereignissen ausgeschlossen.

Die folgenden Fragen entscheiden darüber, ob Sie einem bestimmten Ergebnis vertrauen können. Wo ein Dienstprogramm genau ist, steht es so; Wo es sich annähert oder ablehnt, sagt es das auch.

Was passiert mit dem, was Sie einfügen?

  • Jede Konvertierung, jeder Hash, jede Dekodierung und jeder Diff wird in Ihrem Browser-Tab ausgeführt. Es werden keine Eingaben hochgeladen, protokolliert oder auf einem Server gespeichert, da nach dem Laden der Seite kein Server beteiligt ist.
  • Hashes stammen von der browsereigenen Web Crypto-Implementierung und UUIDs von seinem kryptografisch sicheren Zufallsgenerator. Bei beiden handelt es sich nicht um einen Netzwerkanruf.
  • Nichts, was Sie eingeben, wird in den lokalen Speicher oder in ein Cookie geschrieben. Beim Neuladen der Seite wird diese verworfen; Wenn Sie die Registerkarte schließen, wird sie verworfen.
  • Siteweite Analysen laufen nur auf dem konfigurierten kanonischen Produktionshost und werden in der Datenschutzrichtlinie offengelegt; Lokale und Vorschau-Hosts lehnen dies ab. Eingefügte Werte, Token, URLs und Dateiinhalte sind von den eigenen Analyseereignissen von ToolAcre ausgeschlossen. Werbung ist in der aktuellen Konfiguration deaktiviert.
  • Das heißt: Ein JWT oder ein API-Schlüssel ist ein Live-Zugangsdatensatz. Es ist eine sichere Angewohnheit, niemals etwas in eine Webseite einzufügen, die Sie nicht geschrieben haben, egal wie vertrauenswürdig die Behauptungen sind – auch diese hier.

Fragen

Wird alles, was ich einfüge, hochgeladen?

Kein ToolAcre-Upload empfängt es. Jede Konvertierung, jeder Hash, jede Dekodierung und jeder Vergleich erfolgt in Ihrem Browser. Die standortweite Analyse ist auf den konfigurierten kanonischen Produktionshost beschränkt und wird in der Datenschutzrichtlinie offengelegt. Eingefügte Werte, Token, URLs und Dateiinhalte sind von ToolAcres eigenen Analyseereignissen ausgeschlossen.

Wird zwischen den Besuchen etwas gespeichert?

Nein. Das Toolkit schreibt nichts in localStorage, sessionStorage, IndexedDB oder Cookies. Beim erneuten Laden der Seite werden alle eingegebenen Daten gelöscht. Das Schließen der Registerkarte bewirkt dasselbe. Es gibt kein Kontosystem, daher gibt es nichts, wofür man sich anmelden und nichts löschen muss.

Verarbeitet Base64 hier Emoji und nicht-englischen Text?

Ja, genau. Der Text wird vor der Codierung in UTF-8 bytes konvertiert und mit einem strikten Decoder wieder decodiert, also Emoji, CJK, Arabisch, kombinierte Markierungen und ZWJ-Sequenzen, alle Roundtrip Byte für Byte. Das ist genau das, was die integrierte Funktion btoa() des Browsers falsch macht – sie wirft einige Zeichen aus und erzeugt stillschweigend falsche Bytes für andere.

Wie findet der JSON-Validator die Fehlerposition?

Mit einem eigenen Scanner statt durch Auslesen der Fehlermeldung der Engine. Der JSON-Fehlertext des Browsers ist motorspezifisch und in der aktuellen Version 8 fehlt die Position bei einigen Fehlern vollständig. Der Scanner durchsucht das Dokument und meldet den ersten Offset, der kein gültiges JSON ist, mit einem für einen Menschen geschriebenen Grund – einem abschließenden Komma, einer Zeichenfolge in einfachen Anführungszeichen, einer nicht abgeschlossenen Zeichenfolge – sowie der fehlerhaften Zeile und einem Caretzeichen.

Welche YAML-Funktionen werden unterstützt?

Standardstruktur YAML 1.2, gelesen mit einem eingeschränkten Schema, das nur JSON-förmige Daten erzeugen kann: Zeichenfolgen, Zahlen, Boolesche Werte, Nullen, Sequenzen und Zuordnungen. Tags, die beliebige Objekte konstruieren, werden abgelehnt. Sie können zwischen dem JSON-Schema (am strengsten) und dem Core-Schema (das auch ~ und leere Werte in Null, Hex-Ganzzahlen und .inf/.nan auflöst) wählen.

Warum schlägt meine YAML-Datei mit „unbekanntes Tag“ fehl?

Weil es ein benutzerdefiniertes oder sprachspezifisches Tag wie !!js/function, !!python/object/apply, !!binary oder !!timestamp verwendet. Ein Loader, der zum Erstellen dieser konfiguriert ist, ist ein Konstruktor für beliebige Objekte, der in mehreren Sprachen eine Bug-Klasse für die Remote-Code-Ausführung darstellt. Dieses Tool lehnt sie absichtlich ab, anstatt eine Ausnahme zu machen.

Sind die Hashes korrekt?

Sie werden von der browsereigenen Web Crypto-Implementierung berechnet und von der Testsuite mit den veröffentlichten Vektoren verglichen – SHA-256 von „abc“ ist ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad und die Daneben werden die Vektoren SHA-1, SHA-384 und SHA-512 überprüft, zusammen mit den Leerstring-Digests.

Warum wird SHA-1 als defekt markiert?

Weil es so ist. Eine praktische Kollision wurde in 2017 (SHAttered) veröffentlicht, und Kollisionen mit ausgewählten Präfixen – die Variante, die Signaturen und Zertifikate bricht – wurden in 2020 verfügbar. Es ist enthalten, damit Sie vorhandene SHA-1-Werte wie Git-Objekt-IDs und Legacy-API-Signaturen reproduzieren können, was etwas anderes ist, als sich darauf zu verlassen.

Woher kommen die UUIDs?

Von crypto.randomUUID() oder crypto.getRandomValues(), wobei randomUUID nicht verfügbar ist. Beide sind der kryptografisch sichere Generator des Browsers. Math.random() wird nie verwendet: Sein interner Zustand kann aus einer kurzen Reihe von Ausgaben wiederhergestellt werden, was alles, was daraus erstellt wird, vorhersehbar macht. Wenn keine sichere Quelle vorhanden ist, verweigert das Tool die Generierung, anstatt stillschweigend ein Downgrade durchzuführen.

Verifiziert der JWT-Decoder Signaturen?

Nein. Es dekodiert den Header und die Nutzlast und zeigt Ihnen, was sie behaupten. Die Signatur wird nicht überprüft, daher beweist nichts, was angezeigt wird, dass ein Token authentisch, unverändert oder von der benannten Person ausgestellt ist. Für die Verifizierung sind der Schlüssel des Ausstellers und ein festgeschriebener Algorithmus erforderlich, die zu dem System gehören, das dem Token vertraut – und nicht zu einer Webseite.

Kann ich ein echtes Zugriffstoken einfügen?

Sie können und sollten nicht – hier oder anderswo. Ein Live-Token ist ein Berechtigungsnachweis: Wer ihn besitzt, kann bis zu seinem Ablauf als Sie agieren. Diese Seite dekodiert lokal und sendet nichts, aber das ist eine Behauptung, die Sie auf keiner Website auf einen Blick überprüfen können, daher ist die sichere Gewohnheit abgelaufen oder Test-Tokens. Wenn Sie bereits irgendwo eingefügt haben, drehen Sie es.

Wie funktioniert der Textunterschied?

Es berechnet ein Bearbeitungsskript für die längste gemeinsame Teilsequenz, das anstelle eines naiven Zeile-für-Zeile-Vergleichs einen minimalen Satz an Hinzufügungen und Entfernungen liefert. Identische Anfangs- und Endzeilen werden zuerst gekürzt, sodass der Vergleich zweier großer Dateien, die sich an einer Stelle unterscheiden, schnell geht.

Warum lehnt das Diff sehr große Eingaben ab?

Der LCS-Algorithmus benötigt Zeit und Speicher proportional zum Produkt der beiden Längen. Nach ein paar tausend unterschiedlichen Zeilen, die zu einer Zuordnung werden, sollte ein Browser-Tab nicht mehr versuchen, daher lehnt das Tool dies eindeutig ab und schlägt vor, einen kleineren Bereich zu vergleichen. Dateien, die den größten Teil ihres Inhalts teilen, werden zuerst zugeschnitten und bleiben unabhängig von der Gesamtgröße schnell.

Ist die Erkennung der Zeitstempeleinheit zuverlässig?

Es handelt sich um eine dokumentierte Heuristik, die niemals schweigt. Alles bei oder über 10^11 wird als Millisekunden behandelt, da 10^11 Sekunden das Jahr 5138 sind, während 10^11 Millisekunden 1973 sind. Beim Ergebnis wird immer die tatsächlich verwendete Einheit angezeigt, die Sie übersteuern können.

Funktioniert das Toolkit offline?

Sobald die Seite geladen ist, ja – nichts, was sie tut, braucht das Netzwerk. Da kein Servicemitarbeiter vorhanden ist, ist für den ersten Ladevorgang noch eine Verbindung erforderlich.

Funktioniert es auf einem Telefon?

Ja. Das Layout funktioniert ab 320 CSS-Pixeln aufwärts, der Formulartext ist 16px, sodass mobiles Safari nicht auf den Fokus zoomt und die Steuerelemente das Touch-Target-Minimum von 44 Pixeln erfüllen. Editoren und Ausgaben scrollen in ihren eigenen Feldern, sodass eine lange Reihe minimierter JSON die Seite nie verbreitert.

Ist die Verwendung des Desinfektionsmittels des HTML-Editors für nicht vertrauenswürdige Eingaben sicher?

Nein, und das sagt das Gremium auch. Es handelt sich um eine Zulassungsliste für die eigene Ausgabe des Editors: Elemente und Attribute außerhalb einer festen Liste werden entfernt, Ereignishandler können nicht überleben, da kein Attribut überlebt, es sei denn, es wird aufgelistet, und nur http, https, mailto, tel, ftp und relative Links werden beibehalten. Dadurch kann das, was dieser Editor ausgibt, sicher in eine von Ihnen kontrollierte Seite eingefügt werden. Es handelt sich nicht um einen Allzweck-XSS-Filter – es handelt sich um einen String-Tokenizer, nicht um einen HTML5-Parser, sodass eine feindliche Nutzlast im Prinzip von einem Browser anders geparst werden könnte. Die Vorschau ist ein Sandbox-Iframe ohne Zulassungsskripte, sodass dort trotzdem nichts ausgeführt werden kann.

Warum zeigt der chmod-Rechner S und T manchmal in Großbuchstaben an?

Weil das Spezialbit gesetzt ist, das entsprechende Ausführungsbit jedoch nicht. 4755 ist rwsr-xr-x, ein Setuid-Programm, das ausgeführt werden kann; 4644 ist rwSr--r--, eine Setuid-Datei, die niemand ausführen kann, was fast immer ein Fehler ist. Der Großbuchstabe ist das System, das Ihnen sagt, dass das Bit nichts zu tun hat, und ein Taschenrechner, der dort ein kleines s anzeigt, würde das Einzige verbergen, was Sie sehen müssen.

Führt der Docker-Konverter jemals den von mir eingefügten Befehl aus?

Nein. Es teilt die Zeichenfolge mit einem anführungszeichenfähigen Tokenisierer auf und liest die Teile. Es gibt nirgendwo in der Codebasis eine Auswertung, keine Shell und keinen untergeordneten Prozess. Backticks, $(...) und Semikolons bleiben wörtliche Zeichen. Jedes Flag, das nicht konvertiert werden kann, wird in einer sichtbaren Warnung benannt und nicht gelöscht, da eine Compose-Datei, die stillschweigend weniger ausführt als der Befehl, von dem sie stammt, das Schlimmste ist, was dieses Tool erzeugen kann.

Warum stimmen die Cron-Vorschauzeiten nicht mit denen meines Servers überein?

Normalerweise verwendet die Zeitzone: cron die Zone des Computers, auf dem es ausgeführt wird, und die Vorschau verwendet die von Ihnen ausgewählte Zone. Stellen Sie sie also auf die Zone Ihres Servers ein. Die andere wahrscheinliche Ursache ist die Tagesregel – wenn sowohl der Monatstag als auch der Wochentag festgelegt sind, wird cron ausgeführt, wenn EITHER übereinstimmt, was häufiger ausgelöst wird, als die meisten Leute erwarten. Der Generator warnt, wenn das zutrifft.

Gibt es Werbung oder Analysen?

Werbung ist in der aktuellen Konfiguration deaktiviert. Siteweite Analysen laufen nur auf dem konfigurierten kanonischen Produktionshost und werden in der Datenschutzrichtlinie offengelegt; Eingefügte Werte, Token, URLs und Dateiinhalte sind von ToolAcres eigenen Analyseereignissen ausgeschlossen.

Einschränkungen

  • Alles läuft in einem Browser-Tab, sodass jedes Dienstprogramm an den Speicher Ihres Geräts gebunden ist. Jeder hat eine explizite Eingabeobergrenze und lehnt übergroße Arbeiten ab, anstatt sie einzufrieren.
  • Hashing und UUID-Generierung erfordern einen sicheren Kontext (https:// oder localhost), da Browser dort Web Crypto offenlegen.
  • Der JWT-Decoder überprüft niemals Signaturen und verschlüsselte JWE-Token können überhaupt nicht dekodiert werden.
  • YAML wird mit reinen Datenschemata gelesen; Dokumente, die auf benutzerdefinierten Tags basieren, werden standardmäßig abgelehnt.
  • Die HTML-Entitätstabelle deckt die praktische Teilmenge und nicht alle 2,231 benannten HTML5-Referenzen ab, und unbekannte Namen werden gemeldet, anstatt sie zu erraten.
  • Der Diff vergleicht ganze Zeilen. Innerhalb einer geänderten Zeile erfolgt keine Hervorhebung auf Wort- oder Zeichenebene.
  • Der Sanitiser des HTML-Editors ist eine Zulassungsliste für seine eigene Ausgabe, kein allgemeiner XSS-Filter für nicht vertrauenswürdige Eingaben, und er enthält keine Bilder, Tabellen oder Stile.
  • Der Docker-Konverter verarbeitet jeweils einen Docker-Ausführungsbefehl und benennt jedes Flag, das er nicht darstellen kann, anstatt es zu löschen.
  • Der Cron-Generator liest nur die Crontab-Syntax mit fünf Feldern und seine nächsten Ausführungszeiten sind eine Vorschau, die auf den Zeitzonendaten des Browsers basiert, und keine Garantie für Ihren Server.