Vorsicht beim Einfügen von aus Kontakten kopierten Telefonnummern

Hatten Sie jemals Probleme beim Einfügen einer aus den Kontakten kopierten Telefonnummer in ein Webformular? Es ist vielleicht kein allgemeines Problem, aber es ist eines TidBITS-Leser Dave Fultz Gelöst nach einem frustrierenden Kampf mit einem Online-Bestellformular.

Dave versuchte, ein Paket in Frankreich zu bestellen, und das Formular verlangte nach einer Handynummer an der Lieferadresse. Um sicherzustellen, dass er es verstanden hat, kopierte er es aus den Kontakten und fügte es in das Formular ein, aber als er auf „Senden“ klickte, schlug das Formular fehl. Er versuchte verschiedene Formate für die Telefonnummer – in Frankreich muss die führende Null der zehnstelligen Nummer bei Anrufen innerhalb des Landes enthalten sein, aber bei Anrufen aus dem Ausland weggelassen werden – ohne Erfolg. Das Einfügen der Nummer in einige Online-Verifizierungsdienste schlug ebenfalls fehl. Auch das Einfügen als Klartext hat nichts gebracht.

Also schickte Dave seiner Freundin eine SMS mit der Nummer, was gut funktionierte, und bat sie, ihm die Nummer genau so zu schreiben, wie sie sie einem Franzosen geben würde. Es sah aus wie seine Version, aber als er die Messages-Thread-Nummer kopierte und einfügte, akzeptierte das Formular sie! Was ist passiert?

Dave hatte vor, ein Python-Skript in Terminal zu verwenden, um die Nummer, die er aus den Kontakten hatte, mit der Nummer zu vergleichen, die sein Freund gesendet hatte, aber als er seine Nummer in Terminal einfügte, tauchte das Problem sofort auf, wie Sie im hervorgehobenen Text sehen können in meinem Test unten, der zusätzliche Zeichen auf beiden Seiten der Telefonnummer anzeigt.

Demonstration von Unicode-Zeichen in Terminal

Es stellt sich heraus, dass Kontakte auf dem Mac alle Telefonnummern in zwei Unicode-Zeichen mit Nullbreite (und daher unsichtbar) umschließt: U+202D (ERSATZ VON LINKS NACH RECHTS) und U+202C (POP-RICHTUNGSFORMATIERUNG). Dave spekulierte, dass diese Zeichen die Telefonnummer von der umgebenden Textflussrichtung ausnahmen, die beispielsweise bei Hebräisch und Arabisch von rechts nach links verlaufen würde.

Kontakte scheinen diese Zeichen zusammen mit der Telefonnummer zu speichern, aber da sie keine Breite haben, gibt es keine Möglichkeit, sie auszuwählen, die ich finden konnte. Ich glaube nicht, dass Kontakte diese Zeichen beim Kopieren zu Zahlen hinzufügen, denn wenn Sie ein paar Zeichen in der Mitte einer Zahl auswählen und sie dann kopieren und in Terminal einfügen, sind die unsichtbaren Zeichen nicht vorhanden. Sie sind auch für Telefonnummernfelder eindeutig; eine Nummer, die im Notizfeld gespeichert ist, hat sie auch nicht. Schließlich beschränkt sich das Problem auf Kontakte auf dem Mac; Das Problem betrifft keine Telefonnummern, die in meinen Tests von einem iPhone oder iPad kopiert wurden. (Einige spätere Recherchen ergaben a Fordern Sie einen anderen Thread an der das Problem beschreibt (das Apple als Fehler gemeldet wurde) und bestätigt, dass es in macOS 13.1 Ventura immer noch existiert.)

Warum verursachen diese Charaktere nicht mehr Probleme? Wenn Entwickler Anwendungen entwerfen, die Daten akzeptieren, erstellen sie normalerweise Eingangsfilter die unerwünschte Daten filtern. Ein Telefonnummernfeld hat keinen Grund, unsichtbare Satzzeichen zu akzeptieren, daher ist es eine gute Programmierpraxis, sie zu entfernen. Wenn nichts anderes, Das Filtern von Benutzereingaben ist eine wesentliche Sicherheitspraxis weil Angreifer oft versuchen, ein System mit Daten zu füttern, um bösartigen Code einzuschleusen oder Pufferüberläufe zu verursachen, die ausgenutzt werden könnten.

Obwohl es seltsam erscheint, dass Apple Kontakte so konzipiert hat, dass jede Telefonnummer in diese Zeichen mit der Breite null eingeschlossen wird, schützt es Telefonnummern, die in Textströme von rechts nach links eingefügt werden, vor der Bearbeitung. Es scheint jedoch nicht notwendig zu sein, dass Kontakte dies für alle Mac-Benutzer tun. Apple versucht möglicherweise herauszufinden, wann dies sinnvoll ist, möglicherweise nur, wenn der Benutzer in den Sprach- und Regionseinstellungen von macOS eine Sprache von rechts nach links aktiviert hat.

Hebräisch und Arabisch im Einstellungsbereich Sprache & Region

Wenn Sie in der Praxis auf eine Situation stoßen, in der eine aus den Kontakten kopierte und eingefügte Telefonnummer nicht wie erwartet funktioniert, besteht die einfachste Lösung darin, die Nummer von Hand einzugeben. Sie können es auch in Terminal einfügen und nur die Telefonnummer erneut kopieren, wobei Sie die zusätzlichen Unicode-Zeichen auf beiden Seiten vermeiden.

Wenn Sie regelmäßig auf dieses Problem stoßen und Geek-Punkte sammeln möchten, können Sie ein Keyboard Maestro-Makro erstellen, das diese zusätzlichen Zeichen automatisch entfernt. Verärgert darüber, Zahlen wie ein Tier neu eingeben zu müssen, hat Dave genau das getan, damit Sie es verwenden können sein Makro als Ausgangspunkt für jeden Workflow, der zu Ihnen passt.

Oder Sie können tun, was ich tue, und Kontakte löschen Cardhopdas nicht unter dem Problem leidet und viel angenehmer zu bedienen ist (siehe “Cardhop stellt Kontakte an erste Stelle», 18. Oktober 2017, und «Cardhop 2.0 gebündelt mit Fantastical in Flexibits Premium», 27. Mai 2021).

Leave a Comment