
Tekunda Team

Tekunda Team

قائمة مراجعة الأمان في سيلزفورس مفيدة بس لو كانت مرتبة. معظم الطلبات بتقع في قائمة قصيرة ومتوقعة، وعلى رأسها التحكم في الصلاحيات. اشتغل بالترتيب ده: فرض الصلاحيات في وضع المستخدم داخل الكود، ثم فرز تقارير الفحص التلاتة، ثم تجهيز مستندات التقديم وبيئة اختبار يقدر المراجع يستخدمها فعلا. سيلزفورس بتقول إن المراجعة بتاخد عادة من 4 إلى 5 أسابيع، يعني الرفض بيكلفك دورة إصدار كاملة مش بعد الظهر.
تِكوندا عدّت بحزم مُدارة من المراجعة في قطاعات الرعاية الصحية واللوجستيات والتصنيع. اللي جاي ده هو ترتيب الشغل عندنا فعلا، مش شرح نظري للعملية. لرحلة التقديم كاملة، شوف How ISVs Pass the Salesforce AppExchange Security Review.
تلات حاجات اتغيرت السنة دي، والقوائم القديمة ما تعرفش أي واحدة منهم.
with sharing افتراضيا، وWITH SECURITY_ENFORCED
اتشال، فأي كلاس لسه بيستخدمه على v67.0 مش هيتكمبايل. التريجرات استثناء: دايما بتشتغل
في وضع النظام.
سيلزفورس واضحة إن كل مكونات وخدمات حلك داخلة في النطاق، مهما كان مكانها. يعني الحزمة، وأي خدمة ويب بتناديها، وأي موقع بيخزن بيانات سيلزفورس، وأي عميل جوال أو سطح مكتب. حدد نوع الحزمة قبل ما تبدأ تصلّح الكود، لأنه بيحدد اللي هترفعه؛ مقال Salesforce Packaging Models for ISVs: 1GP vs 2GP vs Unmanaged بيغطي الاختيار ده.
صلّح من فوق لتحت. البنود اللي فوق هي الأكثر تكرارا وكمان الأغلى لو أضفتها متأخر، وعشان كده تأجيلها للآخر هو اللي بيأخر التقديم دورة كاملة.
WITH USER_MODE مع SOQL وAccessLevel.USER_MODE مع استدعاءات
Database، واستبدل أي WITH SECURITY_ENFORCED متبقي قبل ما ترفع
إصدار الـ API.
@AuraEnabled يشتغل من غير مشاركة وانت مش واخد بالك. اكتب
with sharing أو without sharing أو
inherited sharing صراحة على كل كلاس، بما فيها الداخلية والمساعدة، عشان
المراجع ما يضطرش يعرف أنهي افتراضي بيسري.
escape="false" أو lwc:dom="manual" أو
innerHTML لازم تتنضف قبل ما توصل، مش بعدها.
System.debug.
المراجعين بيتوقعوا Named Credentials وcustom metadata محمية بدل كده.
Secure وHttpOnly.
المراجعين بيفحصوا الموقع اللي بتسلمهولهم، مش اللي بتوصفه.
لازم تقدم تقرير Salesforce Code Analyzer وتقرير فاحص الكود في Partner Security Portal وتقرير DAST. الحد مش صفر نتائج، وبيختلف من فاحص للتاني:
ولّد تقرير Code Analyzer v5 بمحدد قواعد AppExchange عشان يطابق اللي المراجع بيتوقعه. في الكود المعقد التشغيل ممكن ياخد ساعات:
sf code-analyzer run --rule-selector AppExchange --rule-selector
Recommended:Security --output-file CodeAnalyzerReport.html
الفحوص الإلزامية اتغيرت أكتر من مرة، فراجع متطلبات الفاحصات الحالية قبل ما تولّد أي حاجة.
في طلباتنا، أربع فئات بترجع كإنذارات كاذبة حقيقية كفاية عشان تحسب حسابها: نتائج تحكم في الصلاحيات على كود بيفرض وضع المستخدم أصلا، ونتائج مشاركة على كلاسات مبتدخلش ليها غير من سياق المشاركة فيه مطبقة، ونتائج مكتبة قديمة بتتطابق مع رقم إصدار جوه static resource مرفقة، ونتائج cross-site scripting منعكس على باراميترات مبتوصلش للـ DOM أبدا.
بس مجرد إنك صح مش كفاية. المستند هو اللي بيعدّيك. سيلزفورس بتطلب مستندا يشرح ليه كل بند متعلَّم مش بيشكل خطرا أمنيا، وبتقول لك تكون محدد في إزاي بتحمي من الثغرة المذكورة. اديّ كل نتيجة خانة خاصة بيها: الفاحص ومعرّف القاعدة، الملف والسطر، جملة عن مسار البيانات، الضابط اللي بيحميها بالظبط، ومكانه في الحزمة. الرد بسطر واحد بيرجع كسؤال، والأسئلة بتكلف أسابيع. لصيغة التبرير والأخطاء اللي بتخليه يترفض، شوف كيف توثّق الإنذارات الكاذبة في مراجعة أمان سيلزفورس.
بعد كده تبدأ المراجعة من Publishing Partner Console: افتح تبويب Technologies، اختار Start Review على حلك، وكمّل أقسام جهات الاتصال والتفاصيل التقنية والتوثيق وبيئة الاختبار قبل الدفع.
سيلزفورس بتقول إن الحل بياخد عادة من 4 إلى 5 أسابيع في المراجعة، وإن كل حل مدفوع عليه رسم 999 دولار للتقديم الأول ولكل محاولة بعده. لو الفريق لقى ثغرات، بتصلّح وتقدم تاني، وده بيتحسب محاولة جديدة. وسيلزفورس بتذكر كمان إن معظم الطلبات بتعدّي في المحاولة التانية. الحقيقتين بيقولوا نفس الحاجة: ابدأ بشغل التحكم في الصلاحيات، لأن أرخص تقديم هو اللي تعمله مرة واحدة.
لو تفضّل تسيب المراجعة لناس عدّوها قبل كده، تِكوندا بتقدم كشريك سيلزفورس التحضير لمراجعة أمان AppExchange. ولو لسه بتفكر تستعين بمساعدة خارجية، شوف ما الذي يقوم به شريك PDO في سيلزفورس ومتى تحتاج إليه.
هل التطبيقات المجانية محتاجة مراجعة أمان؟
أيوه. أي حل لازم يعدّي المراجعة قبل ما يتدرج في السوق. الرسم 999 دولار اللي سيلزفورس موثقاه بيسري على الحلول المدفوعة.
هل إصدار API رقم 67.0 معناه أتخطى شغل CRUD وFLS والمشاركة؟
لأ. الافتراضات الجديدة بتسري بس على الكلاسات المكمبلة على v67.0 أو أحدث، والتريجرات لسه بتشتغل في وضع النظام. اكتب أوضاع الوصول والمشاركة صراحة عشان المراجع يتحقق منها سطر بسطر.
هل Salesforce Code Analyzer كفاية لوحده؟
لأ. محتاج كمان تقرير فاحص الكود في Partner Security Portal، وأي نقطة خارجية بيناديها تطبيقك محتاجة تقرير DAST خاص بيها.
هل تطبيق Agentforce أو قائم على الوكلاء بيغير القائمة؟
نفس المراجعة بتسري، بس كل خدمة خارجية يقدر وكيلك ينادي عليها لازم تتوصف وتتفحص. شوف مراجعة أمان AppExchange للتطبيقات الوكيلة: إيه اللي مختلف.
هل مراجعة الأمان حدث لمرة واحدة؟
لأ. الحلول المدرجة بتتراجع عادة مرة في السنة، وسيلزفورس تقدر تطلب مراجعة في أي وقت. إصدارات الحزمة الجديدة بتستخدم إقرارا في Partner Console بدل مراجعة جديدة، فخلي القائمة بوابة إصدار دايمة.