توقيعات Discourse

هل أنا مجنون أم لا يوجد أي تحقق من صحة عنوان URL لصورة التوقيع للمدخلات من المستخدم؟
بشكل أساسي، يمكن للمستخدم إدخال أي شيء يريده وسيتم دفعه للمستخدمين الآخرين؟

أيضًا، لماذا حجم قاعدة بيانات عنوان URL للتوقيع مضبوط على 32000؟
لماذا سيحتاج أي شخص إلى 32000 حرف لعنوان URL لصورة؟

مخيف :ghost:

لقد قمت بتعديل CSS إلى هذا من أجل ترميز الحد الأقصى للارتفاع والعرض يدويًا؛

.signature-img {
  max-width: 600px;
  max-height: 100px;
  width: auto;
  height: auto;
  display: block;
  margin: 5px 0;
}

لقد غيرت الحد الأقصى لحجم عنوان URL للتوقيع إلى 250 في plugin.rb

  register_user_custom_field_type("signature_url", :string, max_length: 250)
  register_user_custom_field_type("signature_raw", :string, max_length: 250)

لقد أضفت هذا في أسفل “on(:user_updated) do |user|” في plugin.rb (لن أستخدم الوضع المتقدم)

    # التحقق من صحة عنوان URL إذا لم يكن في الوضع المتقدم
    if !SiteSetting.signatures_advanced_mode && user.custom_fields["signature_url"]
      url = user.custom_fields["signature_url"]

      # التحقق الصارم: HTTPS فقط، أنواع ملفات صور معينة فقط
      unless url =~ /\Ahttps:\/\/a-zA-Z0-9.\-\/_]+\.(png|jpe?g|gif|webp)(\?[a-zA-Z0-9=\&]+)?\z/
        Rails.logger.warn("[discourse-signatures] Rejected invalid signature_url for user #{user.id}: #{url.inspect}")
        user.custom_fields["signature_url"] = nil
        user.save
      end
    end

إذا كنت أفعل أي شيء خاطئ هنا (لم أعمل مع Discourse من قبل)، فيرجى تصحيحه وإظهار الطريقة الصحيحة للقيام بذلك.

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

لأن 250 غير كافٍ…

هذه هي الفكرة الأساسية للتوقيع. نفس الشيء ينطبق على المنتدى، الناس يدخلون أشياء ويشاهدها الآخرون. يا للعالم المجنون، أليس كذلك؟

5 إعجابات

عند ترقية Discourse إلى الإصدار 3.5.0.beta8 (الإصدار 3.5.0.beta9-dev يمثل مشكلة أيضًا)، تم اكتشاف أن المستخدم قام بتعديل التوقيع ولا يمكنه حفظه (على الرغم من أنه يظهر محفوظًا ولكنه لا يسري)، ولا يزال طبيعيًا في الإصدار 3.5.0.beta7. نأمل في إصلاحه قريبًا، حيث تم تضمين العديد من الإضافات من الإصدار beta7 إلى الإصدار beta8.

إعجابَين (2)

لدينا حالة استخدام محددة للتوقيعات وأتساءل عما إذا كان من السهل نسبيًا إجراء بعض التغييرات.

  1. أتفق على أنني أود رؤية التوقيعات لمجموعات محددة فقط في واجهة المستخدم، أنا لست جيدًا في CSS.
  2. نحن نستخدم Discourse الخاص بنا كمجتمع ونظام تذاكر دعم. هل هناك أي طريقة يمكننا من خلالها الحصول على إعداد لـ “عرض التوقيعات فقط في فئات X”.

نحن نحتاج إليها حقًا فقط في قسم الدعم الخاص بنا حيث يتم إجراء معظم تفاعلاتنا عبر البريد الإلكتروني.

إعجابَين (2)

تم تقسيم 4 مشاركات إلى موضوع جديد: طلب ميزة: تضمين التوقيع في إشعارات البريد الإلكتروني