الأحرف ثنائية الاتجاه في لغات من اليسار إلى اليمين بعد إصلاح أمني

لقد واجهت للتو طلب السحب التالي:

أعتقد أنه قد يجعل النص العبري أو العربي الشرعي غير قابل للقراءة.

كان أحد الحلول التي واجهتها هو تعطيل خوارزميات يونيكود وعرض تمثيل للأحرف غير القابلة للطباعة (أعتقد أنه تم تنفيذه في Pootle).
لذا، الفكرة الأساسية هي تحويل:
هذا‎‏ النص

إلى:
هذا\\u003cLRM\\u003e\\u003cRLM\u003e النص

بهذه الطريقة يمكن للمستخدم اختيار ما إذا كان هذا خبيثًا أم لا من خلال فهم الأحرف الفعلية واختيار تمكين خوارزميات يونيكود لقراءة النص بشكل صحيح.
شكرا.

3 إعجابات

شكراً لطرحك هذا الأمر، لقد فكرنا في هذا القلق. الإصلاح الذي أشرت إليه في المنشور الأصلي ينطبق فقط على الأحرف ثنائية الاتجاه (unicode bidirectional characters) في كتل pre و code، سواء كانت مكتوبة يدوياً كـ HTML أو تم إنشاؤها من كتل الأكواد المحاطة بعلامات code ``` code [/code] ، لذلك لا ينبغي أن تكون مشكلة مع النص العبري أو العربي العادي في منشور مُركب.

إعجابَين (2)

عرض توضيحي:

#include <cstdio.h>

int main() {
    /* قل مرحباً؛ سطر جديد /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}
#include 

int main() {
    /* قل مرحباً؛ سطر جديد /*/ return 0 ;
    printf("Hello world.\n");
    return 0;
}

اختبار: “שלום חבר” - مرحباً يا صديق

بدون BIDI

اختبار: “שלום חבר” - مرحباً يا صديق

Markdown:

اختبار: "שלום חבר" - مرحباً يا صديق

بدون BIDI

اختبار: "שלום חבר" - مرحباً يا صديق

ليس أفضل مثال في العالم، ولكن يجب أن تفهم الفكرة هنا، فهو يؤثر فقط على الكود المصدري الذي يتم نشره في المنتدى. أحرف Bidi في الكود المصدري ليست شيئًا يتم فعله عادةً.

5 إعجابات

سأقدم مثالاً آخر حيث لا يكسر RLM الجملة.

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

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

هل ترى الفرق؟
التغيير الوحيد هناك هو RLM، أردت تهنئة سام وإبلاغه بأن مارتن سيغادر (لا إساءة).

3 إعجابات

نعم، هذا المثال أفضل بكثير بالتأكيد! كما ترى، فإنه يستمر في العمل ولا يتأثر بإصلاح الأمان :tada:

4 إعجابات

حسنًا، إنها ليست كتلة برمجية :slight_smile:
قصدت أنه داخل كتلة برمجية لن تظهر كما هو متوقع (هذا هو كل ما يتعلق بالإصلاح، أليس كذلك؟)

إعجاب واحد (1)

نعم ولكن لماذا ستدرجه في كتلة التعليمات البرمجية؟

إعجابَين (2)

اقتباس من gettext، سلاسل أصلية بالعبرية/العربية، توجد مثل هذه الحالات.

إعجابَين (2)

أود أن تكون الحالة الشاذة هنا بها حلول بديلة (لقطات شاشة، تحميل مرفقات وما إلى ذلك)، كما أنه من الواضح تمامًا أن الحرف الخاص موجود.

خطر https://trojansource.codes/ أعلى من خطر حدوث اضطراب طفيف في الحالات الشاذة المتطرفة.

3 إعجابات

ولكن اقتراحي يكسر الجملة ببعض الإشارات، لذا فإن استبدال RLM و LRM بـ <RLM> أو <LRM> سيُظهر للمستخدم أنه كانت هناك أحرف إضافية والآن يتم عرض النص بدونها مع إبلاغه بأنه قد يكسر التجربة وأن هناك خيارًا للاستبدال يدويًا إذا لزم الأمر، وإزالة الأحرف تمامًا بدون بعض المؤشرات لا تترك مجالًا لاتخاذ قرارات مستنيرة.

وسيمنع أيضًا شيفرة حصان طروادة كما ذكرت لأن المستخدم سيكون قادرًا على رؤية الشيفرة الضارة بالمؤشرات.

سأحاول الحصول على بعض لقطات الشاشة من Pootle، لا أتذكر رؤية خيار السلاسل النصية الخام هذا في العامين الماضيين، لقد كان مفيدًا جدًا عندما بدأنا في إصلاح الترجمة المحلية لـ LibreOffice.

إعجابَين (2)

لا أتبع، نحن لا نزيل بل نستبدل، انظر إلى مثالي أعلاه

3 إعجابات

أفهم، ألن يكون من الأفضل استخدام أسمائهم بدلاً من كيان يونيكود؟

إعجاب واحد (1)

إذا كان هناك ارتباك متكرر تم الإبلاغ عنه في الاستخدام الفعلي، فيمكننا بالتأكيد إجراء ضبط دقيق.

3 إعجابات

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