2017-01-05 10 views
2

Ich muss Benutzereingaben in eine Zeichenfolge einbetten; Beispiel: "<Benutzer> hat eine Nachricht gesendet".Behandlung von rechts nach links/von links nach rechts überschreiben Zeichen in Benutzereingabe

Das Problem tritt auf, wenn die Benutzereingabe eines der Directionality Override-Zeichen (U + 202D oder U + 202E) enthält. Wenn "<Benutzer>" ein VKE-Zeichen enthält, wird die angezeigte Zeichenfolge "<Benutzer> eine Nachricht gesendet".

Meine Frage ist, wie man das am besten behandelt. Gibt es legitime Verwendungen für VKE und LRO oder streichen sie eine plausible Option aus? Ansonsten kann ich die Benutzereingaben mit "Links-nach-rechts-Einbettung" (U + 202A) und "Pop-direktionales Formatieren" (U + 202C) umschließen, obwohl ich bei dieser Berechtigung wahrscheinlich sicherstellen muss, dass die Benutzereingaben nicht t enthalten unsymmetrische PDF-Zeichen.

+0

'Gibt es legitime Verwendungen für VKE und LRO', na ja, zum Beispiel zitieren Hebräisch oder andere RTL-Sprache. Sie müssen entscheiden, ob das jemals passieren wird. – BurnsBA

+0

@BurnsBA: Warum brauchen Sie VKE, um RTL-Text zu zitieren? Ich kann einfach ein Skript in die Mitte eines Textes einfügen. – richvdh

+0

Ich bin skeptisch, dass Benutzer sich die Zeit nehmen, herauszufinden, wie man Wörter/Sätze/Sätze in umgekehrter Richtung buchstabiert. – BurnsBA

Antwort

2

Gibt es legitime Verwendungen für VKE und LRO, oder sind sie eine plausible Option?

Ich strip sie, zusammen mit allen anderen Zeichen mit der Bezeichnung not suitable for use in markup.

Legitimität ist ein strittiger Punkt, aber echte Arabisch/Hebräisch/etc Tastaturen können nicht BiDi Steuerzeichen eingeben, so dass Sie wahrscheinlich nicht in nicht bösartigen Benutzereingaben auf sie stoßen werden.

+0

Danke @bobince. Es sieht so aus, als wäre es das Richtige, sie zu strippen. – richvdh

+0

Es ist erwähnenswert, dass ich explizit * nicht * markup hier verwende (wenn ich wäre, könnte ich die Eingabe in ein Element, das das Problem lösen würde), so dass es nicht vollständig ist für mich offensichtlich, dass die Empfehlungen in diesem Link gelten. Ich bin auch immer noch daran interessiert, ob es echte, nicht bösartige Verwendungen für diese Charaktere gibt. – richvdh

Verwandte Themen