c# regex - c# uchun regex - regex c#

C# Regex DoS: Naqshlar hujum vektorlariga aylanganda

Muntazam ifodalar ishlashga qarshi bo'lganda  

C# regexning bitta qatori ishlab chiqarish API-sini yiqitishi mumkin. Yomon yozilgan naqshlar katastrofik orqaga qaytishni, protsessor sikllarini yoqish va oqimlarni qulflashni keltirib chiqaradi. Bu klassik Muntazam ifoda xizmat ko'rsatishdan bosh tortish (ReDoS), kodingizda yashiringan nozik, ammo xavfli hujum vektori.

⚠️Xavfsiz bo'lmagan misol, faqat ta'lim maqsadlarida. Ishlab chiqarishda ishlatmang.

C# uchun ushbu regex eksponensial orqaga qaytishga olib keladigan ichki kvantorlardan aziyat chekadi. Uzun, zararli satr oxirgi nuqtani yoki mikroservisni muzlatib qo'yishi mumkin.

Xavfsiz versiya:

Ta'lim bo'yicha eslatma: Har doim vaqt tugashidan foydalaning (RegexOptions + Vaqt oralig'i) va ichki guruhlarni soddalashtirish. Regex C# da ishlashni tasdiqlash optimallashtirish emas, balki xavfsizlik talabidir.

Nima uchun C# Regex naqshlari zaiflashadi

Noaniq miqdorlar (.*, .+yoki (a+)+) va cheksiz takrorlash regexni umumiy DoS maqsadiga aylantiradi.
Bular foydalanuvchi tomonidan boshqariladigan kontekstlarda, masalan, kirishni tekshirish yoki jurnalni tahlil qilishda paydo bo'lganda, bitta yaratilgan foydali yuk protsessorni monopollashtirishi mumkin.

⚠️Xavfsiz bo'lmagan misol, faqat ta'lim maqsadlarida. Ishlab chiqarishda ishlatmang.

Xavfsiz versiya:

Ta'lim bo'yicha eslatma: Noaniq takrorlashdan saqlaning, kirish hajmini cheklang va har doim yuk ostida regex ishlashini baholang. Funktsional parcha, ishlab chiqarishda himoya sifatida vaqt tugashi va maksimal kirish uzunligini ta'minlaydi.

API'lardagi haqiqiy ta'sir va CI/CD Ish oqimi

C# uchun xavfli regexlar faqat tasdiqlash shakllari bilan cheklanib qolmaydi. Ishlab chiquvchilar naqshlarni jurnal filtrlariga, veb-huk moslashtiruvchilariga va avtomatlashtirilgan skanerlarga joylashtiradilar. CI/CD, bitta xavfli naqsh butun jarayonni to'xtatib qo'yishi mumkin pipeline.

⚠️Xavfsiz bo'lmagan misol, faqat ta'lim maqsadlarida. Ishlab chiqarishda ishlatmang.

Foydalanuvchi tomonidan taqdim etilgan regexlarni hech qachon tasdiqlash yoki vaqt tugashini boshqarishsiz qayta ishlamang.

Xavfsiz versiya:

Ta'lim bo'yicha eslatma: Bajarishdan oldin tashqi regex kiritishni tasdiqlang. Aniq uzunlik tekshiruvlarini qo'shing va vaqt tugashini amalga oshiring pipelines.

C# Regex DoS ning oldini olish uchun xavfsiz amaliyotlar

Regex C# da ReDoS oldini olish sizning rivojlanishingizga kiritilishi kerak va DevSecOps ish jarayoni. Uni sukut bo'yicha xavfsiz qilish usuli quyidagicha:

Eng yaxshi amaliyotlar

  1. Har doim vaqtni belgilash barcha regex baholashlarida.
  2. Falokatli naqshlardan qoching, ichki o'rnatilgan miqdorlovchilar yoki noaniq guruhlar yo'q.
  3. Kiritish hajmini cheklash regexga o'tishdan oldin.
  4. Ishonchli naqshlarni oldindan kompilyatsiya qiling bilan RegexOptions.Compiled.
  5. Foydalanuvchi tomonidan taqdim etilgan ifodalarni dezinfeksiya qiling yoki ruxsat etilgan naqshlarni oq ro'yxatga qo'shing.

Mini profilaktika nazorati

  • Kod bazangizdagi C# dan foydalanish uchun har bir regexni ko'rib chiqing.
  • Qo'llash Vaqt oralig'i doimiy ravishda tanaffuslar.
  • API va CI kirishlarida kirish uzunliklarini cheklash.
  • Chiqarishdan oldin regex ishlashini sinab ko'ring.
  • Statik regexni avtomatlashtirish skanerlash CI/CD.

Ta'lim bo'yicha eslatma: Regex naqshlarini ishonchsiz kod sifatida ko'rib chiqing. Ular SQL yoki buyruqlarni bajarish bilan bir xil tekshiruvga loyiqdir.

Xygeni xavfli C# Regex foydalanishni qanday aniqlaydi

Xygeniy Code Security statik tahlil paytida xavfli regex C# naqshlarini avtomatik ravishda aniqlaydi. Bu katastrofik orqaga qaytish, vaqt tugashining yo'qligi va xizmatlarning muzlab qolishi ehtimoli bor naqshlarni aniqlaydi. In CI/CD, Xygeniy vazifasini bajaradi DevSecOps darvozasi, C# uchun xavfli regexni birlashtirish yoki joylashtirishdan oldin bloklaydi.

Ta'lim bo'yicha eslatma: Xygeni integratsiyasi tuzilmalar va muhitlar bo'ylab xavfsiz regex ishlov berishni ta'minlaydi, joylashtirishdan oldin regressiyalar va DoS ta'sirining oldini oladi.

Sizning Regexingiz kuchli, uning qurollanmaganligiga ishonch hosil qiling

ReDoS zaifliklari sodda ko'rinadigan C# regexini xizmat ko'rsatishni rad etish quroliga aylantiradi. C# naqshlari uchun xavfli regexlar ishlab chiqarishni to'xtatib qo'ymaguncha yoki buzilmaguncha keng tarqalgan xato hisoblanadi CI/CD.

Regex xavfsizligini kodlash gigienangizning bir qismiga aylantiring:

  • Har doim tanaffuslardan foydalaning.
  • Ichki o'rnatilgan miqdorlovchilardan saqlaning.
  • Foydalanuvchi kiritishini cheklash.
  • Tekshirishlarni avtomatlashtirish Xygeni Code Security.

Regex har doim kuchli bo'ladi, lekin ehtiyotkorlik bilan dizayn bilan sizning regex C # naqshlaringiz keyingi hodisalar haqida hisobotingizga aylanmaydi.

sca-vositalari-dasturiy ta'minot-kompozitsiya-tahlil-vositalari
Dasturiy ta'minot xavflaringizni ustuvorlashtiring, bartaraf eting va himoya qiling
Bepul hisobingizni oling.
Kredit karta talab qilinmaydi.

Dasturiy ta'minotingizni ishlab chiqish va yetkazib berishni ta'minlang

Xygeni mahsulot to'plami bilan