مكتبة BootGridCRUD PHP لاستخدام jquery-bootgrid

  • bitsnaps

السلام عليكم،

انهيت العمل على مكتبة لتسهيل استخدام www.jquery-bootgrid.com لصاحبها Rafael Staib

أهم الخصائص:

  • عمليات إضافة/حذف/تعديل كلها باستخدام php-activerecord وajax

  • خفيفة وسهلة الاستخدام ولا تتطلب أي إطار عمل php.

المصدر مفتوح:

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

يرجى الدخول لحسابك أو تسجيل حساب لتستطيع إضافة تعليق
حساب جديد دخول

التعليقات

مجهوود مقدر شكرا لك ,لكن لماذا لا تنصح بإستخدامها في مشاريع جاهزة؟

bitsnaps أضف ردا

فقط لأني لم أجربها بكثافة وأخشى مشاكل أمنية (حقن أو xss)، إنه أول إصدار :)

مشروع رائع

اخي وجدت في ملفات انك استخدمت PDO و بخصوص sql injection

ما افضل طريقة للحماية منها

هكذا

$sth->execute(array(150, 'red'));

او من خلال استخدام الدالة binValue ؟

ااذا لم تفهم ماذا اقصد اخبرني لاضع مثال كامل...

في الواقع استخدمت اطار عمل ORM php-activerecord الذي يستخدم بشكل داخلي المكتبة PDO

وهو اطار عمل شهير يُستخدم كجزء من اطارات عمل أخرى شهيرة (yii, codeigniter...)

طبعا هو يتولى بالقيام بالكثير من الفحوصات لأجل حماية أكثر ضد الهجمات، خاصة وأنه يحول كل شيء إلى كائنات Objects، انظر:

غير أنه يجب القيام بفحوصات إضافية أكثر خاصة فيما يتعلق بمدخلات المستخدم إلى المتغيرات العامة POST_$ و GET_$

مثلا التحقق من المدخلات GET_$ بأنها عددية is_numeric وأنها أتت من الصفحات المسموح لها بذلك...

في هذه المثال، أعتقد أنه يمكننا استخدام assign_attribute عوض إرفاق القيم بشكل مباشر للمزيد من الحماية:

$model->assign_attribute($k, toHtml($values[$k]));

يمكن إضافة حماية للخصائص الحسّاسة Protected attributes

يبقى php-activerecord مكتبة لها مميزات ونقائص وهي كغيرها ليست معصومة من الأخطاء:

انا اعتقدت انك تستخدم طريقة عادية للاتصال اي برمجت كل شئ بنفسك لهذا سألتك كون انني اتعلم PDO و لم اعرف بعد من الافضل طريقة للحماية عند استخدام prepare

لا أجد لك أفضل من الإجابات التي ممكن أن تجدها في stackoverflow

رائع جدا

شكرا لك لقد وجدت انه يستخدم نفس الكود الذي حيرني من الافضل هل تمرير مصفوفة الى دالة execute بدون استخدام دالة

bindValue او bindParam ام الافضل استخدام احد تلك الدوال للحماية من sql injection

في الصورة هنالك كودين اريد ان اعرف من الافضل من ناحية الحماية

لست خبيرا بالحماية، لكني لا أرى أي فرق بين bindParam وexecute من الناحية الأمنية

أعتقد أن الفرق يكمن فقط في أن bindParam تسمح لك بإجراء عمليات أخرى بعد إرفاق القيمة، واستخدامها يسهل مراجعة الشيفره ويجعل التعديل أكثر مرونة، انظر:

شكرا لك

الان فهمت شئ من ناحية الحماية اخي تفرق لانه عند استخدام bindParam فانت تحدد نوع المتغير كذلك اما عند تمرير الى execute فقط فلا تستطيع تحديد نوع المتغير