Caractères bidirectionnels dans les langues LTR postent un correctif de sécurité

Je viens de tomber sur la PR suivante :

Je pense que cela pourrait rendre le texte hébreu ou arabe légitime illisible.

L’une des solutions que j’ai rencontrées a été de désactiver les algorithmes Unicode et d’afficher simplement une représentation des caractères non imprimables (je pense que c’était implémenté dans Pootle).
L’idée est donc essentiellement de transformer :
Ce‎‏ texte

En :
Ce\\u003cLRM\u003e\\u003cRLM\u003e texte

De cette façon, l’utilisateur peut choisir s’il s’agit d’une attaque ou non en comprenant quels sont les caractères réels et éventuellement choisir d’activer les algorithmes Unicode pour pouvoir lire le texte correctement.
Merci.

3 « J'aime »

Merci d’avoir soulevé ce point, nous avions pensé à cette préoccupation. La correction que vous avez liée dans le message initial ne s’applique qu’aux caractères bidirectionnels Unicode dans les blocs pre et code, qu’ils soient écrits manuellement en HTML ou générés à partir de blocs de code délimités par \u003ccode\u003e```\u003c/code\u003e, de sorte que cela ne devrait pas poser de problème avec le texte hébreu ou arabe ordinaire dans un message composé.

2 « J'aime »

Démo :

#include <cstdio.h>

int main() {
    /* Dire bonjour ; nouvelle ligne<U+2067> /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}
#include 

int main() {
    /* Dire bonjour ; nouvelle ligne<U+2067> /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}

Test : ‫"שלום חבר" - Bonjour l’ami

Sans BIDI

Test : “שלום חבר” - Bonjour l’ami

Markdown :

Test : &#x202B;"שלום חבר" - Bonjour l'ami

Sans BIDI

Test : "שלום חבר" - Bonjour l'ami

Ce n’est pas le meilleur exemple du monde, mais vous devriez comprendre l’idée ici, cela n’affecte que le code source publié sur le forum. Les caractères Bidi dans le code source ne sont généralement pas utilisés.

5 « J'aime »

Je vais donner un autre exemple où aucun RLM ne brise la phrase.

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

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

Voyez-vous la différence ?
Le seul changement est le RLM. Je voulais féliciter Sam et informer que Martin nous quitte (Sans offense).

3 « J'aime »

Oui, cet exemple est certainement bien meilleur ! Comme vous pouvez le voir, il continue de fonctionner et n’est pas impacté par le correctif de sécurité :tada:

4 « J'aime »

Hmmm ce n’est pas un bloc de code :slight_smile:
Je voulais dire qu’à l’intérieur d’un bloc de code, il n’apparaîtra pas comme prévu (c’est à cela que sert la correction, n’est-ce pas ?)

1 « J'aime »

Oui, mais pourquoi l’incluriez-vous dans un bloc de code ?

2 « J'aime »

Extrait de gettext, chaînes natives hébraïques/arabes, il y a de tels cas.

2 « J'aime »

Je voudrais que le cas extrême ici ait des solutions de contournement (capture d’écran, téléchargements de pièces jointes, etc.), et il est également assez clair que le caractère spécial est en place.

Le risque de https://trojansource.codes/ est plus élevé que le risque de perturbations mineures dans des cas extrêmes.

3 « J'aime »

Mais ma suggestion casse la phrase avec un indice, donc remplacer le RLM et le LRM par \\u003cRLM\u003e ou \\u003cLRM\u003e montrera à l’utilisateur qu’il y avait des caractères supplémentaires et que le texte est maintenant rendu sans eux, tout en l’informant que cela pourrait nuire à l’expérience et qu’il existe une option pour les rétablir manuellement si nécessaire, en supprimant complètement les caractères sans aucun indicateur, cela ne laisse aucune place à des décisions éclairées.

Et cela empêchera également le code source de cheval de Troie comme vous l’avez mentionné, car l’utilisateur pourra voir le code malveillant avec les indicateurs.

J’essaierai d’obtenir des captures d’écran de Pootle, je ne me souviens pas avoir vu cette option de chaînes brutes au cours des deux dernières années, elle a été très utile lorsque nous avons commencé à corriger la localisation de LibreOffice.

2 « J'aime »

Je ne comprends pas, nous ne retirons pas, nous remplaçons, voyez mon exemple ci-dessus

3 « J'aime »

Je comprends, ne serait-il pas préférable d’utiliser leurs noms au lieu de l’entité Unicode ?

1 « J'aime »

S’il y a une confusion répétée signalée dans la nature, nous pouvons certainement affiner.

3 « J'aime »

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