بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله وبركاته

مساء الخير على الجميع

إخواني الأفاضل ما سوف يتم طرحه هنا هو فقط اجتهاد مني لا غير بسبب الثغرة التي انتشرت قبل أسابيع في سكربت whmcs

طيب كيف يتم إيقاف ذلك !!!!

ما تم استنتاجه أنهم يضعون اكواد في عنوان السكربت وتلك الاكواد مشفره وطويلة

طيب ليش ما يتم تحديد عدد الأحرف التي تكتب في عنوان التذكرة في كل من قاعدة البيانات وأيضا السكربت

الحل هنا ندخل على قاعدة بيانات السكربت ونبحث عن هذا الجدول

Tbltickets مثل ما هو موجود هنا بالصورة



نضغط على بناء

بعد ذلك نبحث عن الحقل المسئول عن العنوان title ونضغط على المرسام الموجود على يسار الحقل تغير

تفتح لك شاشة في السطر الثاني موجود لدينا النوع نغيره من text إلى varbinary وأيضا نضع في السطر إلي أسفل والذي اسمه الطول/القيمة عدد 50 ثم نضغط على حفظ الموجود في نهاية الصفحة

هنا لن يتم حقن قاعة البيانات بكود اكبر من 50 حرف إلى هنا ممتاز

---------------------------------

ولزيادة الامان اكثر سوف ندخل على ملف الاستايل واجهة السكربت الموجود في مجلد templates سوف يتم البحث عن هذا الملف

supportticketsubmit-steptwo.tpl

يجب فتحه بأي محرر

ونبحث عن هذا السطر بالضبط

رمز PHP:
<td><input type="text" name="subject" size="60" value="{$subject}" /></td>

ونغير قيمته إلى هذا السطر


رمز PHP:
<td>
<!--
webbot bot="Validation" S-Data-Type="String" B-Allow-Letters="TRUE" B-Allow-Digits="TRUE" B-Value-Required="TRUE" I-Minimum-Length="3" I-Maximum-Length="60" -->
<
input type="text" name="subject" size="60" value="{$subject}" maxlength="60" /></td>

ماذا يعني هذا السطر

ما يعنيه إخواني هو أني جعلت أطول عنوان لعنوان للتذكرة هو 60 حرف


بكذا إن شاء الله لن يتم كتابت الكود بالشكل المطلوب سوف يأخذ منه فقط 60 حرف وما سوف يضعه في الجدول تبع قاعدة البيانات فقط 50 حرف .

هذا ما لذي والله اعلم