
LuaJIT FFI bindings لمكتبة libinjection، توفر كشفًا عن حقن SQL وهجمات XSS مع واجهات برمجة تطبيقات خاصة بالسياق لأمن تطبيقات الويب.
lua-resty-libinjection - روابط LuaJIT FFI لمكتبة libinjection
هذه المكتبة قيد التطوير النشط وهي جاهزة للإنتاج
توفر هذه المكتبة روابط FFI لمكتبة libinjection، وهي محلل ومحلّل رموز لـ SQL/SQLi وXSS.
قم بتثبيت هذه المكتبة كما تفعل مع أي وحدة lua أخرى في OpenResty. يجب أن يكون ملف الكائن المشترك libinjection موجودًا في lua_package_cpath، لذا يجب عليك إنشاء رابط رمزي أو نسخ ملف .so إلى الموقع المناسب.
access_by_lua_block {
local libinjection = require "resty.libinjection"
-- واجهة SQLi البسيطة
local issqli, fingerprint = libinjection.sqli(string)
-- يتم أيضًا توفير روابط خاصة بالسياق
issqli, fingerprint = libinjection.sqli_noquote(string)
issqli, fingerprint = libinjection.sqli_singlequote(string)
issqli, fingerprint = libinjection.sqli_doublequote(string)
-- واجهة XSS البسيطة
local isxss = libinjection.xss(string)
-- روابط خاصة بالسياق
isxss = libinjection.xss_data_state(string)
isxss = libinjection.xss_noquote(string)
isxss = libinjection.xss_singlequote(string)
isxss = libinjection.xss_doublequote(string)
isxss = libinjection.xss_backquote(string)
}
الصيغة: issqli, fingerprint = libinjection.sqli(string)
عند إعطاء سلسلة نصية، تُرجع قيمة منطقية issqli تمثل ما إذا تم اكتشاف SQLi، وسلسلة نصية fingerprint تمثل بصمة libinjection المكتشفة. في معظم الحالات، هذا هو الخيار المفضل؛ روابط واجهة برمجة التطبيقات من المستوى الثاني المذكورة أدناه قد تكون أكثر كفاءة قليلاً في سياقات محددة.
الصيغة: issqli, fingerprint = libinjection.sqli_noquote(string)
مثل libinjection.sqli، في السياق المحدد لسلسلة نصية "كما هي".
الصيغة: issqli, fingerprint = libinjection.sqli_singlequote(string)
مثل libinjection.sqli، في السياق المحدد لسلسلة نصية بعلامة اقتباس مفردة (').
الصيغة: issqli, fingerprint = libinjection.sqli_doublelequote(string)
مثل libinjection.sqli، في السياق المحدد لسلسلة نصية بعلامة اقتباس مزدوجة (").
الصيغة: isxss = libinjection.xss(string)
نسخة ALPHA من كاشف XSS. عند إعطاء سلسلة نصية، تُرجع قيمة منطقية isxss تشير إلى ما إذا تم اكتشاف XSS. في معظم الحالات، هذا هو الخيار المفضل؛ روابط واجهة برمجة التطبيقات من المستوى الثاني المذكورة أدناه قد تكون أكثر كفاءة قليلاً في سياقات محددة.
الصيغة: isxss = libinjection.xss_data_state(string)
مثل libinjection.xss، ولكن يتم تشغيله مع علامة DATA_STATE فقط.
الصيغة: isxss = libinjection.xss_noquote(string)
مثل libinjection.xss، ولكن يتم تشغيله مع علامة VALUE_NO_QUOTE فقط.
الصيغة: isxss = libinjection.xss_singlequote(string)
مثل libinjection.xss، ولكن يتم تشغيله مع علامة VALUE_SINGLE_QUOTE فقط.
الصيغة: isxss = libinjection.xss_doublequote(string)
مثل libinjection.xss، ولكن يتم تشغيله مع علامة VALUE_DOUBLE_QUOTE فقط.
الصيغة: isxss = libinjection.xss_backquote(string)
مثل libinjection.xss، ولكن يتم تشغيله مع علامة VALUE_BACK_QUOTE فقط.
حقوق النشر 2017 Robert Paprocki
يُسمح بإعادة التوزيع والاستخدام في الأشكال المصدرية والثنائية، مع أو بدون تعديل، بشرط استيفاء الشروط التالية:
يجب أن تحتفظ إعادة توزيع الكود المصدري بإشعار حقوق النشر أعلاه، وهذه القائمة من الشروط وإخلاء المسؤولية التالي.
يجب أن تعيد إعادة التوزيع في الشكل الثنائي إنتاج إشعار حقوق النشر أعلاه، وهذه القائمة من الشروط وإخلاء المسؤولية التالي في الوثائق و/أو المواد الأخرى المقدمة مع التوزيع.
لا يجوز استخدام اسم صاحب حقوق النشر أو أسماء المساهمين فيه لتأييد أو الترويج لمنتجات مشتقة من هذا البرنامج دون إذن كتابي محدد مسبقًا.
يتم توفير هذا البرنامج "كما هو" من قبل أصحاب حقوق النشر والمساهمين، ويتم إخلاء المسؤولية عن أي ضمانات صريحة أو ضمنية، بما في ذلك على سبيل المثال لا الحصر، الضمانات الضمنية للتسويق والملاءمة لغرض معين. في أي حال من الأحوال، لا يكون صاحب حقوق النشر أو المساهمون مسؤولين عن أي أضرار مباشرة أو غير مباشرة أو عرضية أو خاصة أو نموذجية أو تبعية (بما في ذلك على سبيل المثال لا الحصر، شراء السلع أو الخدمات البديلة؛ فقدان الاستخدام أو البيانات أو الأرباح؛ أو انقطاع الأعمال) مهما كان سببها وعلى أي نظرية من نظريات المسؤولية، سواء في العقد أو المسؤولية الصارمة أو الضرر (بما في ذلك الإهمال أو غيره) الناشئة بأي شكل من الأشكال عن استخدام هذا البرنامج، حتى لو تم إخطارهم بإمكانية حدوث مثل هذه الأضرار.
يرجى الإبلاغ عن الأخطاء عن طريق إنشاء تذكرة عبر متتبع مشكلات GitHub.