Hallo Gast! Bitte registriere dich um Beiträge schreiben zu können und Zugang zu allen Bereichen zu bekommen. Hier registrieren

Auch ohne Registrierung direkt eine Support-Anfrage stellen: Zum Support-Fomular


Threema Web und -App haben Probleme mit Klammern nach URLs mit Query-String
#1
Hallo zusammen,

heute war mir aufgefallen, dass Threema Web 2.1.3 (für die Nutzer von vollständigen Feuerfüchsen) sowie die neueste Version ebenfalls keine eckigen Klammern nach URLs mit Query-String vertragen!
(Gestern schickte mir jemand einen eingeklammerten Youtube-Link, den ich über Threema Web nicht öffnen konnte. Zuerst vermutete ich das Problem beim Absender, jedoch konnte ich den heute erneut verschickten Link [ohne Klammern] sofort öffnen.)

Beispiel-Nachricht:
[Hier soll nach "Test" gesucht werden: https://www.startpage.com/do/search?query=Test]
Mittels Threema Web wird dann nach "Test]" gesucht. Bei Anfragen mit konkreten IDs als letztem Parameter (wie z. B. Youtube-Links), wird dann meistens die gesamte Anfrage abgebrochen.

Ich wollte dies gleich bei Github als Bug melden und testete deshalb noch etwas weiter. Dabei fiel mir auf, dass die Threema-App anscheinend das gleiche Problem mit runden Klammern hat, welches Threema-Web mit eckigen besitzt!

In der (Android-)App würde also die folgende Nachricht nicht das gewünschte Ergebnis bringen:
(Hier soll nach "Test" gesucht werden: https://www.startpage.com/do/search?query=Test)

Entsprechende Youtube-Links führen wieder auf deren Oops-Seite.
Zitieren
#2
RFC1738

"the special characters "$-_.+!*'(),", and reserved characters used for their reserved purposes may be used unencoded within a URL"


Die runde Klammer kann also Teil einer URL sein.
https://www.startpage.com/do/search?query=Test) ist also eine gültige URL.

"Other characters are unsafe because gateways and other transport agents are known to sometimes modify such characters. These characters are "{", "}", "|", "\", "^", "~", "[", "]", and "`".

Eine eckige Klammer müsste in einer URL also urlencodet werden und ist nicht Teil einer URL.
https://www.startpage.com/do/search?query=Test] ist keine gültige URL.

Korrekt wäre
https://www.startpage.com/do/search?query=Test%5D

Android verhält sich also IMHO korrekt, der Browser nicht.
Zitieren
#3
Ja, ich habe auch bereits gelesen, dass die unterschiedlichen Arten von Klammern anders behandelt werden. (Die runden Klammern zu escapen, wurde, glaube ich, nur "empfohlen".)

Ob man dies den technisch unkundigen Nutzern allerdings so erklären kann, dass sie gerade die normalen Klammern nicht benutzen sollten, steht auf einem ganz anderen Blatt.

Threema Web behandelt ja gerade mein Beispiel mit den runden Klammern korrekt (also nicht korrekt per Definition, sondern ohne Zerstörung des Links).
Zitieren
#4
<auf der Enter-Taste ausgerutscht>
Zitieren
#5
(14.05.2019., 20:24)lgrahl schrieb: und es praktisch niemand in URLs nutzt

Ich würde jetzt Wikipedia nicht als "praktisch niemand" bezeichnen...

https://de.wikipedia.org/wiki/Bundeshaus_(Bern)
Zitieren
#6
Auf wen antwortest du? Ich hab das nie geschrieben. Heilig
Zitieren
#7
@dbrgn: Die Wikipedia ist natürlich ein gutes Argument. Das bekomme ich dann auch anderen erklärt. Danke.

@lgrahl: Ich habe eben den Tab von vorgestern aktualisiert - und Dein ganzer Beitrag war auf einmal verschwunden! Was ist denn da passiert? ;-P

Ich wüsste dann aber trotzdem gerne, nach welchem Algorithmus Threema Web entscheidet, welche Klammern zum Link gehören und welche nicht!

Einzeilige Testnachricht:
(Nach "Test" in der Wikipedia gesucht: https://de.wikipedia.org/wiki/Test_(Begr...C3%A4rung))

Threema Web setzt nicht nur das "ä" korrekt ein, sondern zählt auch nur die inneren Klammern zum Link! Er bleibt also funktionstüchtig (wie übrigens auch hier im Forum).
In eckigen Klammern funktioniert dies nicht (was ja mein ursprüngliches Anliegen war).

Die Android-App hält sich anscheinend strikt an den RFC, zählt beide schließenden Klammern zum Link und macht ihn damit (für technisch unkundige Nutzer) unbenutzbar.

Threema Web scheint aber auch nicht einfach nur mitzuzählen (die öffnenden und schließenden Klammern nach dem Protokoll der URL). Klammert man nämlich die Testnachricht erneut ein, dann versagt auch Threema Web, obwohl sich der eigentliche Link nicht geändert hat. Offensichtlich wird nur die äußerste schließende Klammer nicht mitgezählt, unabhängig davon, ob die Nachricht mit einer Klammer begonnen wurde oder nicht.
Ganz ohne (zusätzliche) Klammern kommt der Link aber auch durch.

Da muss also schon etwas zusätzlich geschrieben worden sein, aber nicht genug bzw. nicht korrekt (wegen den eckigen Klammern).
Zitieren
#8
Hier ist der Algorithmus: https://github.com/threema-ch/threema-we..._parser.ts

(16.05.2019., 17:47)GerardoB schrieb: Klammert man nämlich die Testnachricht erneut ein, dann versagt auch Threema Web [...]

Kannst du da ein Beispiel für bringen? Dann können wir das ggf. als Test Case integrieren.
Zitieren
#9
(16.05.2019., 20:19)lgrahl schrieb: Hier ist der Algorithmus: https://github.com/threema-ch/threema-we..._parser.ts

Das ist nur Markup. Links werden mit Autolinker.js verarbeitet: https://github.com/threema-ch/threema-we...s#L76-L100


Vermutlich sollten wir einfach mal Autolinker updaten  Zwincker

Edit: https://github.com/threema-ch/threema-web/issues/807
Zitieren
#10
In dem Thread habe ich mich aber ordentlich mit Ruhm bekleckert. Zwincker
Zitieren


Möglicherweise verwandte Themen...
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Beta: Kontakte haben kein Bild und Namen mehr TiRohn 3 953 19.07.2018., 10:07
Letzter Beitrag: TiRohn
  Fehler: For input string ... Video/Datei kann nicht verschickt werden? colhati 4 1.632 22.01.2018., 19:50
Letzter Beitrag: colhati