• أعضاء وزوار معهد زين العربية، نود أن نعلمكم أن المعهد سيشهد في الفترة القادمة الكثير من التغيرات سواءا على المستوى الاداري او مستوى الاقسام، لذا نرجو منكم التعاون، وأي ملاحظات او استفسارات يرجى التواصل معنا عبر قسم الشكاوي و الإقتراحات و الطلبات ونشكركم على حسن تفهمكم وتعاونكم ،مع خالص الشكر والتقدير والاحترام من إدارة زين العربية.

[ جديد XenForo ] تحسينات على تطبيقات الويب التقدمية (PWA) وتعزيز حماية CSRF

أبو غَيْث

:: الإدارة العامة ::
طاقم الإدارة
23 يناير 2019
5,418
47
3,528
113
زين العربية
xenarabia.com
تحسينات تطبيقات الويب التقدمية PWA

بعد التحسينات التي أُعلن عنها في وقت سابق من هذا الأسبوع، لدينا مجموعة أخرى من التحسينات لنقدمها لكم اليوم، بفضل @digitalpoint مجددًا! هذه المرة سنركز على بعض التحسينات لتطبيقات الويب التقدمية والتي قد يكون البعض منكم مألوفًا بها إذا كنتم تستخدمون إضافة [DigitalPoint] PWA.

تحرير مظهر تطبيق الويب

لقد كنا نستخدم مظهر تطبيق الويب منذ فترة، ولكن مع بدء إصدار XenForo 2.4، ستتمكن من تعديل مظهر تطبيق الويب باستخدام خيار additionalWebAppManifest الجديد.

1743790380014.webp

بالإضافة إلى إضافة خصائص إضافية، يمكنك أيضًا استبدال الخصائص الحالية. هناك موارد متعددة توثق الخيارات المتوافقة (والتجريبية!).

JSON:
{
  "name": "XF 2.4",
  "short_name": "XF 2.4",
  "description": "Community platform by XenForo®",
  "icons": [
    {
      "src": "/data/assets/logo/xenforo-icon-large.png",
      "sizes": "192x192",
      "purpose": "any"
    },
    {
      "src": "/data/assets/logo/xenforo-icon-large.png",
      "sizes": "192x192",
      "purpose": "maskable"
    },
    {
      "src": "/data/assets/logo/xenforo-icon-large.png",
      "sizes": "512x512",
      "purpose": "any"
    },
    {
      "src": "/data/assets/logo/xenforo-icon-large.png",
      "sizes": "512x512",
      "purpose": "maskable"
    }
  ],
  "lang": "en-US",
  "dir": "ltr",
  "display": "standalone",
  "scope": "/",
  "id": "/?_pwa=1",
  "start_url": "/?_pwa=BkGzMt_ojcv1jsEts8Rl26Zca2M1IH9y",
  "background_color": "#ebebeb",
  "theme_color": "#0f578a",
  "orientation": "portrait",
  "categories": [
    "social",
    "lifestyle"
  ]
}

تسجيل الدخول التلقائي بعد تثبيت PWA

يحتوي مظهر الويب الآن على رمز فريد خاص داخل خاصية start_url، مما يسمح للمستخدمين عبر جميع المتصفحات بتسجيل الدخول تلقائيًا بعد تثبيت PWA.

تحديثات تلقائية لعداد الشارات

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

إشعار إشعارات الدفع بشكل أكثر بروزًا

عند تثبيت PWA للمرة الأولى، سيتم عرض إشعار إشعارات الدفع بشكل أكثر بروزًا.

1743791724771.webp
اشتراكات إشعارات الدفع الأكثر موثوقية

في بعض الحالات، قد "تفقد" بعض المتصفحات اشتراكات إشعارات الدفع تحت ظروف معينة. يحدث هذا بشكل أساسي على Safari (macOS و iOS) ولكن، من الناحية النظرية، قد يصل هذا السلوك في النهاية إلى محركات متصفحات أخرى بما في ذلك المتصفحات المعتمدة على Chromium و Firefox. يتعلق ذلك بالحاجة إلى اشتراكات إشعارات الدفع التي تتطلب إيماءات فعلية من المستخدم بدلاً من أن يتم تفعيلها برمجيًا. لقد تم إعادة تصميم منطق اشتراك إشعارات الدفع بالكامل في XenForo 2.4، مما سيتجنب هذه السيناريوهات - خاصة عندما يتم تفعيل أشياء مثل التحقق من الهوية الثنائية (2FA).

هل يمكن إرسال إشعارات دفع من لوحة التحكم الإدارية؟

من الناحية الفنية، لم يتم تنفيذ ذلك بعد. على الرغم من أننا نود معرفة آرائكم حول ما إذا كانت هذه ستكون إضافة مفيدة. تسمح إضافة PWA الخاصة بـ DigitalPoint للمسؤولين بإرسال إشعارات دفع إلى المستخدمين بناءً على معايير معينة. هذا مشابه لـ "تنبيه المستخدمين"، "إرسال بريد إلكتروني للمستخدمين" و "مراسلة المستخدمين". إنه متكرر إلى حد ما مع "تنبيه المستخدمين" حيث يتم بالفعل إرسال إشعارات دفع بالإضافة إلى التنبيهات لأي مستخدمين قاموا بتمكين إشعارات الدفع. يمكن تنفيذ "دفع المستخدمين" من الإضافة إذا كانت هناك حالات استخدام معقولة لذلك. فقط دعنا نعرف أدناه!

تعزيز حماية CSRF

بينما تُعتبر هذه أيضًا ميزة من إضافة @digitalpoint، فإننا نبرزها بشكل منفصل حيث قمنا بتوسيع نطاقها لتغطية المزيد من حالات الاستخدام. إنها أيضًا تغيير تقني أكثر خلف الكواليس بدلاً من أن تكون شيئًا يواجه المستخدم.

في المتصفحات المدعومة، نستخدم الآن Metadata Fetch للحد من هجمات تزوير الطلب عبر المواقع (CSRF)، مستبدلين النهج التقليدي القائم على الرموز. هذه ميزة جديدة نسبيًا، ولكنها مدعومة من قبل جميع المتصفحات الحديثة. ستعود المتصفحات القديمة بسلاسة إلى طريقة الرموز القديمة. يساعد هذا التغيير في تجنب المشاكل الشائعة مع الرموز المنتهية الصلاحية، خاصةً على الهواتف المحمولة، أو عند استخدام تخزين الذاكرة المؤقتة مثل Cloudflare لتقديم محتوى الضيوف.

بالإضافة إلى ذلك، قمنا بإلغاء استخدام وضع الرموز في الطلبات GET للإجراءات التي تغير الحالة (مثل تسجيل الخروج). للحفاظ على نفس تجربة المستخدم، يتم الآن تفعيل هذه الإجراءات من خلال طلبات POST التي يبدأها JavaScript. كما قمنا بدمج تدهور عملي سلس. إذا كانت JavaScript غير مفعلة أو تم الوصول إلى رابط مباشرة، سيُعرض على المستخدمين نموذج تأكيد احتياطي.

بالنسبة للمطورين

كما ذُكر، هناك معالج جديد XF.LinkPostClick الذي يسمح للرابط بالتسبب في طلبات POST. على سبيل المثال:

HTML:
<a href="{{ link('route') }}" data-xf-click="link-post">Change state</a>

لقد قمنا أيضًا بتقديم إضافة وحدة تحكم RedirectPlugin، والتي تعرض نموذجًا تداخليًا يتم تقديمه تلقائيًا عند التحويل إلى إجراء يغير الحالة. على سبيل المثال:

PHP:
$redirectPlugin = $this->plugin(\XF\ControllerPlugin\RedirectPlugin::class);

return $redirectPlugin->actionPost($this->buildLink('route'));

أخيرًا، يتم الآن استخدام Fetch Metadata لمنع تضمين عناوين URL كصور. هذه الحماية تلقائية، حتى بدون استدعاء طريقة assertNotEmbeddedImageRequest القديمة. إذا كنت بحاجة إلى السماح بالتضمين (كما نفعل مع المرفقات)، يمكنك التراجع عن ذلك عن طريق تجاوز الطريقة الاختيارية isAllowedMediaEmbedAction. على سبيل المثال:

PHP:
public function isAllowedMediaEmbedAction(
    string $action,
    ParameterBag|null $params = null
): bool
{
    return strtolower($action) === 'index';
}


المصدر :

 

إحصائيات المنتدى

المواضيع
1,666
المشاركات
18,687
الأعضاء
1,271
آخر عضو مسجل
Dabor Tech
أعلى