Bidirektionale Zeichen in LTR-Sprachen nach Sicherheitsfix

Ich bin gerade auf die folgende PR gestoßen:

Ich glaube, sie könnte legitimen hebräischen oder arabischen Text unlesbar machen.

Eine der Lösungen, auf die ich gestoßen bin, war, die Unicode-Algorithmen zu deaktivieren und nur eine Darstellung von nicht druckbaren Zeichen anzuzeigen (ich glaube, das wurde in Pootle implementiert).
Die Idee ist also im Grunde, Folgendes zu tun:
Dieser‎‏ Text

In:
Dieser\\u003cLRM\\u003e\\u003cRLM\u003e Text

Auf diese Weise kann der Benutzer entscheiden, ob dies bösartig ist oder nicht, indem er versteht, welche Zeichen tatsächlich vorhanden sind, und möglicherweise die Unicode-Algorithmen aktivieren kann, um den Text richtig lesen zu können.
Danke.

3 „Gefällt mir“

Vielen Dank, dass Sie dies angesprochen haben. Wir haben uns Gedanken über dieses Problem gemacht. Die von Ihnen in der OP verlinkte Korrektur gilt nur für bidirektionale Unicode-Zeichen in pre- und code-Blöcken, die entweder manuell als HTML geschrieben oder aus code````/code Markdown-Fenced-Codeblöcken generiert wurden. Daher sollte dies kein Problem mit normalem hebräischen oder arabischen Text in einem verfassten Beitrag darstellen.

2 „Gefällt mir“

Demo:

#include <cstdio.h>

int main() {
    /* Say hello; newline<U+2067> /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}
#include 

int main() {
    /* Say hello; newline<U+2067> /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}

Test: “שלום חבר” - Hello Friend

Without BIDI

Test: “שלום חבר” - Hello Friend

Markdown:

Test: "שלום חבר" - Hello Friend

Without BIDI

Test: "שלום חבר" - Hello Friend

Kein das beste Beispiel der Welt, aber du solltest das Wesentliche hier verstehen, es wirkt sich nur auf Quellcode aus, der im Forum gepostet wird. Bidi-Zeichen im Quellcode sind nichts, was normalerweise gemacht wird.

5 „Gefällt mir“

Ich gebe ein weiteres Beispiel, bei dem kein RLM den Satz unterbricht.

שלום לכולם ובמיוחד ל־Sam, Martin בחר לעזוב אותנו.

שלום לכולם ובמיוחד ל־Sam,‏ Martin בחר לעזוב אותנו.

Sehen Sie den Unterschied?
Die einzige Änderung dort ist RLM. Ich wollte Sam gratulieren und ihn darüber informieren, dass Martin geht (Nichts für ungut).

3 „Gefällt mir“

Ja, dieses Beispiel ist sicherlich viel besser! Wie Sie sehen können, funktioniert es weiterhin und ist von der Sicherheitskorrektur nicht betroffen :tada:

4 „Gefällt mir“

Hmmm, das ist kein Codeblock :slight_smile:
Ich meinte, dass es in einem Codeblock nicht wie erwartet angezeigt wird (darum geht es bei der Korrektur, oder?).

1 „Gefällt mir“

Ja, aber warum sollte man es in einen Codeblock einfügen?

2 „Gefällt mir“

Auszug aus gettext, hebräische/arabische native Zeichenfolgen, es gibt solche Fälle.

2 „Gefällt mir“

Ich würde den Ausnahmefall hier mit Workarounds (Screenshot, Hochladen von Anhängen usw.) versehen, außerdem ist es ziemlich klar, dass das Sonderzeichen vorhanden ist.

Das Risiko von https://trojansource.codes/ ist höher als das Risiko von leichten Störungen in extremen Ausnahmefällen.

3 „Gefällt mir“

Aber mein Vorschlag bricht den Satz mit einem Hinweis, daher wird das Ersetzen von RLM und LRM durch \\u003cRLM\u003e oder \\u003cLRM\u003e dem Benutzer zeigen, dass zusätzliche Zeichen vorhanden waren und der Text nun ohne sie gerendert wird, während er darüber informiert wird, dass dies die Erfahrung beeinträchtigen könnte und dass es eine Option gibt, sie bei Bedarf manuell zurückzusetzen. Das vollständige Entfernen der Zeichen ohne Indikatoren lässt keinen Raum für fundierte Entscheidungen.

Und es wird auch Trojaner-Quellcode verhindern, wie Sie erwähnt haben, da der Benutzer den bösartigen Code mit den Indikatoren sehen kann.

Ich werde versuchen, einige Screenshots von Pootle zu bekommen. Ich erinnere mich nicht, diese Option für Rohzeichenfolgen in den letzten Jahren gesehen zu haben. Sie war sehr nützlich, als wir mit der Korrektur der LibreOffice-Lokalisierung begannen.

2 „Gefällt mir“

Ich verstehe nicht, wir entfernen nicht, wir ersetzen, siehe mein Beispiel oben

3 „Gefällt mir“

Ich verstehe, wäre es nicht besser, ihre Namen anstelle von Unicode-Entitäten zu verwenden?

1 „Gefällt mir“

Wenn es in der Praxis wiederholt zu Verwirrung kommt, können wir diese sicherlich verfeinern.

3 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.