Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

الخلاصاتاتصالالخصوصية© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
lua-resty-waf — جدار حماية تطبيقات الويب (WAF) عالي الأداء مبني على حزمة OpenResty. | Kitploit
أدوات/GitHubGitHub/p0pr0ck5/lua-resty-waf
أدوات دفاعيةأمن الويبأمن واجهات برمجة التطبيقاتمكافحة الروبوتاتالأفضل في مكافحة الروبوتات #8
GitHubp0pr0ck5/lua-resty-waf

lua-resty-waf

جدار حماية تطبيقات الويب (WAF) عالي الأداء مبني على حزمة OpenResty.

عرض المستودع
1.3k30553منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

الاسم

lua-resty-waf - جدار حماية لتطبيقات الويب عالي الأداء مبني على حزمة OpenResty

جدول المحتويات

  • الاسم
  • الحالة
  • الوصف
  • المتطلبات
  • الأداء
  • التثبيت
  • الملخص
  • الدوال العامة
    • lua-resty-waf.load_secrules()
    • lua-resty-waf.init()
  • الطرق العامة
    • lua-resty-waf:new()
    • lua-resty-waf:set_option()
    • lua-resty-waf:set_var()
    • lua-resty-waf:sieve_rule()
    • lua-resty-waf:exec()
    • lua-resty-waf:write_log_events()
  • الخيارات
    • add_ruleset
    • add_ruleset_string
    • allow_unknown_content_types
    • allowed_content_types
    • debug
    • debug_log_level
    • deny_status
    • disable_pcre_optimization
    • event_log_altered_only
    • event_log_buffer_size
    • event_log_level
    • event_log_ngx_vars
    • event_log_periodic_flush
    • event_log_request_arguments
    • event_log_request_body
    • event_log_request_headers
    • event_log_ssl
    • event_log_ssl_sni_host
    • event_log_ssl_verify
    • event_log_socket_proto
    • event_log_target
    • event_log_target_host
    • event_log_target_path
    • event_log_target_port
    • hook_action
    • ignore_rule
    • ignore_ruleset
    • mode
    • nameservers
    • process_multipart_body
    • req_tid_header
    • res_body_max_size
    • res_body_mime_types
    • res_tid_header
    • score_threshold
    • storage_backend
    • storage_keepalive
    • storage_keepalive_timeout
    • storage_keepalive_pool_size
    • storage_memcached_host
    • storage_memcached_port
    • storage_redis_host
    • storage_redis_port
    • storage_zone
  • معالجة المراحل
  • مجموعات القواعد المضمّنة
  • تعريفات القواعد
  • ملاحظات
    • المجتمع
    • طلبات السحب
  • خارطة الطريق
  • القيود
  • الترخيص
  • الأخطاء
  • انظر أيضًا

الحالة

Build Status Codewake CII Best Practices

ملاحظة: أصبح lua-resty-waf مهجورًا فعليًا. كان لهذا المشروع فائدة في وقتٍ لم يكن فيه ModSecurity لـ Nginx خيارًا قابلاً للتطبيق؛ ولم يعد الأمر كذلك. كانت هناك محاولة لإحياء المشروع في عام 2020، لكنني لا أملك الموارد اللازمة لإكمال ذلك؛ هذا العمل مكتمل جزئيًا في فرع redux.

الوصف

lua-resty-waf هو جدار حماية لتطبيقات الويب يعمل كوكيل عكسي مبني باستخدام حزمة OpenResty. يستخدم واجهة برمجة تطبيقات Nginx Lua لتحليل معلومات طلبات HTTP ومعالجتها وفق بنية قواعد مرنة. يُوزَّع lua-resty-waf مع مجموعة قواعد تحاكي ModSecurity CRS، بالإضافة إلى بعض القواعد المخصصة التي أُنشئت أثناء التطوير والاختبار الأولي، وحزمة تصحيحات افتراضية صغيرة للتهديدات الناشئة. علاوةً على ذلك، يُوزَّع lua-resty-waf مع أدوات لترجمة قواعد ModSecurity الموجودة تلقائيًا، مما يتيح للمستخدمين توسيع تنفيذ lua-resty-waf دون الحاجة إلى تعلم صيغة قواعد جديدة.

طُوّر lua-resty-waf في البداية بواسطة Robert Paprocki لأطروحة الماجستير الخاصة به في جامعة Western Governor's University.

المتطلبات

يتطلب lua-resty-waf عدة وحدات Lua تابعة لجهات خارجية من نوع resty، على الرغم من أن جميعها مُرفقة مع lua-resty-waf، وبالتالي لا تحتاج إلى تثبيتها بشكل منفصل. يُنصح بتثبيت lua-resty-waf على نظام يعمل بحزمة برامج OpenResty؛ لم يتم اختبار lua-resty-waf على منصات مبنية باستخدام حزم منفصلة من مصدر Nginx ووحدة Nginx Lua.

للحصول على أداء أمثل لتجميع التعبيرات النمطية، يُنصح ببناء Nginx/OpenResty مع إصدار من PCRE يدعم ترجمة JIT. إذا كان نظام التشغيل لديك لا يوفر ذلك، يمكنك بناء PCRE بدعم JIT مباشرةً ضمن بناء Nginx/OpenResty الخاص بك. للقيام بذلك، أشر إلى مسار مصدر PCRE في خيار الضبط --with-pcre. على سبيل المثال:```sh

./configure --with-pcre=/path/to/pcre/source --with-pcre-jit

يمكنك تنزيل كود مصدر PCRE من [موقع PCRE](http://www.pcre.org/). راجع أيضًا [هذه التدوينة](https://www.cryptobells.com/building-openresty-with-pcre-jit/) للحصول على شرح خطوة بخطوة حول بناء OpenResty مع مكتبة PCRE مفعّلة بـ JIT.

## الأداء

صُمم lua-resty-waf مع مراعاة الكفاءة وقابلية التوسع. فهو يستفيد من نموذج المعالجة غير المتزامنة في Nginx وتصميم فعال لمعالجة كل معاملة بأسرع ما يمكن. أظهرت اختبارات الحمل أن النشرات التي تطبق جميع مجموعات القواعد المقدمة، والمصممة لمحاكاة المنطق الكامن وراء ModSecurity CRS، تعالج المعاملات في حوالي 300-500 ميكروثانية لكل طلب؛ وهذا يعادل الأداء الذي تعلن عنه [WAF الخاصة بـ Cloudflare](https://www.cloudflare.com/waf). أُجريت الاختبارات على مجموعة أجهزة معقولة (معالج E3-1230، ذاكرة وصول عشوائي 32 جيجابايت، قرصا 840 EVO في RAID 0)، وبلغت الذروة حوالي 15000 طلب في الثانية. راجع [هذه التدوينة](http://www.cryptobells.com/freewaf-a-high-performance-scalable-open-web-firewall) لمزيد من المعلومات.

عبء عمل lua-resty-waf مرتبط بوحدة المعالجة المركزية بشكل شبه حصري. حجم الذاكرة المستهلكة في جهاز Lua الافتراضي (باستثناء التخزين الدائم المدعوم بـ `lua-shared-dict`) يبلغ حوالي 2 ميجابايت.

## التثبيت

يتم توفير Makefile بسيط:```
# make && sudo make install

بدلاً من ذلك، ثبّت عبر Luarocks:```

luarocks install lua-resty-waf

تستخدم lua-resty-waf مدير الحزم [OPM](https://github.com/openresty/opm)، المتاح في توزيعات OpenResty الحديثة. تتطلب أدوات OPM الخاصة بالعميل توفر أداة سطر الأوامر `resty` في متغير البيئة `PATH` في نظامك.

لاحظ أنه افتراضيًا يعمل lua-resty-waf في وضع SIMULATE، لمنع التأثير الفوري على التطبيق؛ يجب على المستخدمين الذين يرغبون في تفعيل إجراءات القواعد ضبط وضع التشغيل صراحةً إلى ACTIVE.

## ملخص```lua
http {
    init_by_lua_block {
        -- use resty.core for performance improvement, see the status note above
        require "resty.core"

        -- require the base module
        local lua_resty_waf = require "resty.waf"

        -- perform some preloading and optimization
        lua_resty_waf.init()
    }

    server {
        location / {
            access_by_lua_block {
                local lua_resty_waf = require "resty.waf"

                local waf = lua_resty_waf:new()

                -- define options that will be inherited across all scopes
                waf:set_option("debug", true)
                waf:set_option("mode", "ACTIVE")
تنزيل الأداة