Walsimsiisa regex hunda argachuun yeroo hunda O(n2) ture. | Mewayz Blog Skip to main content
Hacker News

Walsimsiisa regex hunda argachuun yeroo hunda O(n2) ture.

Yaada

8 min read Via iev.ee

Mewayz Team

Editorial Team

Hacker News

Baasii Dhokataa Walsimsiisa Paattara

Developers'f, ibsitoonni idilee (regex) meeshaa hin hafne, cirracha Waraana Siwiizarlaand kan barruu irraa odeeffannoo parsing, mirkaneessuu fi baasuudha. Akkaataa iimeelii sakatta'uu irraa kaasee hanga deetaa galmee irraa ciruutti, regex furmaata itti deemnudha. Haa ta'u malee, fuula humna guddaa qabu kana jalatti kiyyoon raawwii waggoota kurnaniif sirnoota dhiphisaa ture jira: walxaxiinsi yeroo hamaan walsimsiisaa hunda tarree tokko keessatti argachuu O(n2) dha. Walxaxiinsi yeroo kuuwaadraatikii kun akkuma dhangii galtee sararaan guddachaa deemuun yeroon adeemsa eksaapooneenshiyaalii guddachuu danda'a, kunis suuta jechuu hin eegamne, dhama'iinsa qabeenya, fi taatee ReDoS (Regular Expression Denial of Service) jedhamuun beekamutti geessuu danda'a. Daangaa uumamaan jiru kana hubachuun tarkaanfii jalqabaa gara aplikeeshiniiwwan ciccimoo fi gahumsa qaban ijaaruudha.

Reex Maaliif O(n2) Walsimsiisu? Rakkoo Duubatti Deebi'uu

Hundeen walxaxiinsa O(n2) mala motoroonni regex aadaa baay'een itti fayyadaman keessa jira: duubatti deebi'uu. Yeroo motorri regex, akkuma isa Perl, Python, ykn Java keessa jiru, walsimsiisaa ta'uu danda'u hunda argachuuf yaalu, salphaatti dhangii al tokko hin sakatta'u. Daandii adda addaa qorata. Mee paateeniin salphaa akka `(a+)+b` kan dhangii irra caalaa "a" irratti hojiirra oole, akka "aaaaaaaaac" ilaali. Mootorri araadaan "a" hunda `a+` isa jalqabaa wajjin walsimsiisa, sana booda "b" isa dhumaa walsimsiisuuf yaala. Yeroo kufe, duubatti deebi'a-"a" isa dhumaa wal hin simne fi garee alaa irratti safara `+` yaaluun. Adeemsi kun irra deddeebi'a, motorri akkaataa "a"n garee ta'uu danda'an walnyaatinsa danda'amu hunda akka yaalu dirqisiisa, kunis dho'iinsa walnyaatinsaa carraawwanii fida. Lakkoofsi daandii motorri qorachuu qabu iskuweerii dheerina dhangii wajjin walmadaalu ta'uu danda'a, kanaaf O(n2).

    jechuun ni danda’ama
  • Araadaa Safartoota: Paatroonni akka `.*` ykn `.+` jalqaba irratti hamma danda'ametti barruu fayyadamu, kunis yeroo kutaaleen itti aanan shaakala walsimsiisuu dadhaban duubatti deebi'uu bal'aa fida.
  • Lakkoofsitoota Nested: Ibsitoonni akka `(a+)+` ykn `(a*a*)*` lakkoofsa eksaapooneenshiyaalii karaalee dhangii galtee qoqqooduuf uumu, yeroo adeemsaa haala ajaa'ibaatiin dabalu.
  • Paatroonni Wal-xaxaa: Yeroo dhangiin tokko karaa wal-irratti wal-caaluu hedduudhaan walsimsiisuun danda'amu, motorri walsimsiisaa hunda argachuuf tokkoon tokkoon carraa sakatta'uu qaba.
jechuun ni danda’ama

Dhiibbaa Addunyaa Dhugaa: Suuta jechuu caalaa

Kun yaaddoo barnootaa qofa miti. Regex gahumsa hin qabne naannoo oomishaa keessatti bu’aa hamaa qabaachuu danda’a. Sakatta'iinsi mirkaneessa deetaa miidhaa hin qabne fakkaatu yeroo faayiloota gurguddoo adeemsifamu ykn galtee fayyadamaa baay'ee qabatu qaruuraa ta'uu danda'a. Bu'aan balaa guddaa qabu haleellaa ReDoS yoo ta'u, taphataan hamaan tokko dhangii of eeggannoodhaan hojjetamee fi raawwii haala hamaa regex application web keessatti kakaasu, bu'a qabeessa ta'een server fannisee fayyadamtoota seera qabeessa ta'aniif akka hin argamne taasisa. Daldaltootaaf, kun kallattiin yeroo hojii dhaabuu, galii dhabuu fi maqaa gaarii miidhamuutti hiika. Yeroo sirnoota walxaxaa ijaaran, keessumaa kanneen deetaa hin amanamne adeemsisan, kiyyoowwan regex kana beekuun qaama murteessaa odiitii nageenyaa fi raawwii hojiiti.

"Yeroo tokko fooyya'iinsa qindeessaa xiqqaa kan regex dhangiiwwan fayyadamaa-bakka bu'aa qoqqooduuf seensisu qabna turre. Fe'iinsa idilee jalatti, gaarii ture. Garuu yeroo tiraafikaa guddaa ta'etti, kufaatii kaskaadii kan API keenya daqiiqaaf gadi buuse uume. Yakkamaan O(n2) regex nuti gonkumaa akka qabnu hin beekne ture." - Injinarii Olaanaa DevOps

Mewayz waliin Sirna Smarter Ijaaruu

Egaa, akkamitti danqaa bu’uuraa kana bira darbina? Furmaanni isaas meeshaalee fooyya’oo fi filannoowwan ijaarsaa qaroo ta’an walitti makuu of keessaa qaba. Tokkoffaa, qopheessitoonni xiinxaltoota regex fayyadamuun akkaataa rakkoo qaban adda baasuu fi irra deebi’anii barreessuu danda’u akka ga’umsa qabaataniif (fkn, safartoota qabiyyee ykn gareewwan atoomii fayyadamuu). Raawwii dhumaatiif, algoritmoonni filannoo yeroo sararaawaa, O(n), walsimsiisa paateeniif wabii ta'an jiru, haa ta'u malee manneen kitaabaa istaandaardii keessatti baay'ee hin mul'atan.

Kun bakka OS daldalaa moojuularii akka Mewayz faayidaa guddaa itti kennudha. Mewayz adeemsa murteessaa kutaa kutaa fi hordofuuf si dandeessisa. Appilikeeshinii monolithic bakka regex suuta jedhu tokko sirna guutuu naafa gochuu danda'u qabaachuu mannaa, deetaa parsing fi mirkaneessuuf microservice of kenne, adda baafame bobbaasuu dandeessa. Dhimmi raawwii hojii yoo uumame, kan qabamee fi hojii daldalaa biroo irratti dhiibbaa osoo hin geessisin furmaata argachuu danda'a. Kana malees, meeshaaleen ilaalchaa waltajjii Mewayz keessa jiran gahumsa dhabuuwwan kana maamiltoota keessan irratti dhiibbaa uumuu isaanii dura adda baasuuf isin gargaaruu danda’u, kunis muddama dhufuu danda’u gara hojii fooyya’iinsa to’atamuu danda’utti jijjiiruu danda’a. Bu'uura jijjiiramaa fi ilaalamuu danda'u irratti ijaaruudhaan, loojiki daldalaa kee, adeemsa barruu walxaxaa dabalatee, raawwii fi dandamachuu akka danda'u mirkaneessita.

💡 DID YOU KNOW?

Mewayz replaces 8+ business tools in one platform

CRM · Invoicing · HR · Projects · Booking · eCommerce · POS · Analytics. Free forever plan available.

Start Free →

Gaaffilee Irra Deddeebiin Gaafataman

Baasii Dhokataa Walsimsiisa Paattara

Developers'f, ibsitoonni idilee (regex) meeshaa hin hafne, cirracha Waraana Siwiizarlaand kan barruu irraa odeeffannoo parsing, mirkaneessuu fi baasuudha. Akkaataa iimeelii sakatta'uu irraa kaasee hanga deetaa galmee irraa ciruutti, regex furmaata itti deemnudha. Haa ta'u malee, fuula humna guddaa qabu kana jalatti kiyyoon raawwii waggoota kurnaniif sirnoota dhiphisaa ture jira: walxaxiinsi yeroo hamaan walsimsiisaa hunda tarree tokko keessatti argachuu O(n2) dha. Walxaxiinsi yeroo kuuwaadraatikii kun akkuma dhangii galtee sararaan guddachaa deemuun yeroon adeemsa eksaapooneenshiyaalii guddachuu danda'a, kunis suuta jechuu hin eegamne, dhama'iinsa qabeenya, fi taatee ReDoS (Regular Expression Denial of Service) jedhamuun beekamutti geessuu danda'a. Daangaa uumamaan jiru kana hubachuun tarkaanfii jalqabaa gara aplikeeshiniiwwan ciccimoo fi gahumsa qaban ijaaruudha.

Reexx Maaliif O(n2) Walsimsiisu? Rakkoo Duubatti Deebi'uu

Hundeen walxaxiinsa O(n2) mala motoroonni regex aadaa baay'een itti fayyadaman keessa jira: duubatti deebi'uu. Yeroo motorri regex, akkuma isa Perl, Python, ykn Java keessa jiru, walsimsiisaa ta'uu danda'u hunda argachuuf yaalu, salphaatti dhangii al tokko hin sakatta'u. Daandii adda addaa qorata. Mee paateeniin salphaa akka `(a+)+b` kan dhangii irra caalaa "a" irratti hojiirra oole, akka "aaaaaaaaac" ilaali. Mootorri araadaan "a" hunda `a+` isa jalqabaa wajjin walsimsiisa, sana booda "b" isa dhumaa walsimsiisuuf yaala. Yeroo kufe, duubatti deebi'a-"a" isa dhumaa wal hin simne fi garee alaa irratti safara `+` yaaluun. Adeemsi kun irra deddeebi'a, motorri akkaataa "a"n garee ta'uu danda'an walnyaatinsa danda'amu hunda akka yaalu dirqisiisa, kunis dho'iinsa walnyaatinsaa carraawwanii fida. Lakkoofsi daandii motorri qorachuu qabu iskuweerii dheerina dhangii wajjin walmadaalu ta'uu danda'a, kanaaf O(n2).

Dhiibbaa Addunyaa Dhugaa: Suuta jechuu caalaa

Kun yaaddoo barnootaa qofa miti. Regex gahumsa hin qabne naannoo oomishaa keessatti bu’aa hamaa qabaachuu danda’a. Sakatta'iinsi mirkaneessa deetaa miidhaa hin qabne fakkaatu yeroo faayiloota gurguddoo adeemsifamu ykn galtee fayyadamaa baay'ee qabatu qaruuraa ta'uu danda'a. Bu'aan balaa guddaa qabu haleellaa ReDoS yoo ta'u, taphataan hamaan tokko dhangii of eeggannoodhaan hojjetamee fi raawwii haala hamaa regex application web keessatti kakaasu, bu'a qabeessa ta'een server fannisee fayyadamtoota seera qabeessa ta'aniif akka hin argamne taasisa. Daldaltootaaf, kun kallattiin yeroo hojii dhaabuu, galii dhabuu fi maqaa gaarii miidhamuutti hiika. Yeroo sirnoota walxaxaa ijaaran, keessumaa kanneen deetaa hin amanamne adeemsisan, kiyyoowwan regex kana beekuun qaama murteessaa odiitii nageenyaa fi raawwii hojiiti.

Mewayz

waliin Sirna Smarter Ijaaruu

Egaa, akkamitti danqaa bu’uuraa kana bira darbina? Furmaanni isaas meeshaalee fooyya’oo fi filannoowwan ijaarsaa qaroo ta’an walitti makuu of keessaa qaba. Tokkoffaa, qopheessitoonni xiinxaltoota regex fayyadamuun akkaataa rakkoo qaban adda baasuu fi irra deebi’anii barreessuu danda’u akka ga’umsa qabaataniif (fkn, safartoota qabiyyee ykn gareewwan atoomii fayyadamuu). Raawwii dhumaatiif, algoritmoonni filannoo yeroo sararaawaa, O(n), walsimsiisa paateeniif wabii ta'an jiru, haa ta'u malee manneen kitaabaa istaandaardii keessatti baay'ee hin mul'atan.

OS Daldala Keessan Har'a Ijaadhaa

Hojjetoota bilisaa irraa kaasee hanga ejensiiwwanitti, Mewayz moojuulota walitti makaman 208n daldala 138,000+ humna kenna. Bilisaa jalqabi, yeroo guddattu fooyyessi.

Akkaawuntii Bilisaa Uumuu →
jechuun ni danda’ama

Try Mewayz Free

All-in-one platform for CRM, invoicing, projects, HR & more. No credit card required.

Start managing your business smarter today

Join 6,208+ businesses. Free forever plan · No credit card required.

Ready to put this into practice?

Join 6,208+ businesses using Mewayz. Free forever plan — no credit card required.

Start Free Trial →

Ready to take action?

Start your free Mewayz trial today

All-in-one business platform. No credit card required.

Start Free →

14-day free trial · No credit card · Cancel anytime