O(n²) foana ny fitadiavana ny lalao regex rehetra
Hevitra
Mewayz Team
Editorial Team
Ny vidiny miafina amin'ny fampitoviana lamina
Ho an'ny mpamorona, ny fiteny mahazatra (regex) dia fitaovana tena ilaina, antsy Tafika Soisa ho an'ny famakafakana, fanamarinana ary fanalana vaovao avy amin'ny lahatsoratra. Avy amin'ny fanamarinana ny endrika mailaka mankany amin'ny fikojakojana angon-drakitra avy amin'ny logs, regex no vahaolana. Na izany aza, ao ambanin'ity fasana mahery vaika ity dia misy fandrika fampisehoana izay nanakorontana ny rafitra nandritra ny am-polony taona maro: ny fahasarotan'ny fotoana ratsy indrindra amin'ny fitadiavana ny lalao rehetra ao anaty tady dia O(n²). Ity fahasarotana amin'ny fotoana quadratic ity dia midika fa rehefa mitombo tsikelikely ny tady fampidirana, dia mety hitombo be ny fotoana fanodinana, mitarika amin'ny fihemorana tsy ampoizina, ny faharerahan'ny loharanon-karena ary ny tranga iray antsoina hoe ReDoS(Regular Expression Denial of Service). Ny fahatakarana io famerana io no dingana voalohany amin'ny fananganana fampiharana matanjaka sy mahomby kokoa.
Nahoana ny Regex no mifanandrify amin'ny O(n²)? Ny olan'ny fihemorana
Ny fototry ny fahasarotan'ny O(n²) dia ao amin'ny rafitra ampiasain'ny ankamaroan'ny motera regex mahazatra: mihemotra. Rehefa misy motera regex, toy ilay ao amin'ny Perl, Python, na Java, manandrana mitady ny lalao rehetra azo atao, dia tsy mijery ny tady indray mandeha fotsiny. Mitrandraka lalana samihafa izy io. Diniho ny lamina tsotra toy ny `(a+)+b` ampiharina amin'ny tady misy "a" matetika, toy ny "aaaaaaaac". Ny motera dia mampifanaraka ny "a" rehetra amin'ny `a+' voalohany, avy eo manandrana mampifanaraka ny "b" farany. Rehefa tsy mahomby dia mihemotra izy—tsy mifanandrify amin'ny "a" farany ary manandrana ny fanisana `+` amin'ny vondrona ivelany. Miverina io dingana io, manery ny motera hanandrana ny fitambarana rehetra azo atao amin'ny fomba fanakambanana ny "a", izay mitarika ho amin'ny fipoahana mitambatra. Ny isan'ny lalana tsy maintsy hozahan'ny motera dia mety mifanandrify amin'ny efamira amin'ny halavan'ny tady, noho izany dia O(n²).
- Mitarika fatiantoka: Ny lamina toy ny `.*` na `.+` dia mandany lahatsoratra betsaka araka izay azo atao amin'ny voalohany, ka mitarika ho amin'ny fihemorana be rehefa tsy mifanaraka ny ampahany manaraka amin'ny lamina.
- Manonta fanisana: Ny fomba fiteny toy ny `(a+)+` na `(a*a*)*` dia mamorona fomba isan-karazany hanasarahana ny tady fampidirana, izay mampitombo be ny fotoana fanodinana.
- Mila tsy mazava: Rehefa azo ampifandraisina amin'ny fomba mifanipaka maro ny tady, dia tsy maintsy manamarina ny fahafaha-manao tsirairay ny motera hahitana ny lalao rehetra.
Ny fiantraikan'izao tontolo izao: Mihoatra noho ny fihemorana fotsiny
Tsy resaka akademika fotsiny izany. Ny regex tsy mahomby dia mety hisy fiantraikany ratsy eo amin'ny tontolo famokarana. Ny fisavana fanamarinana angon-drakitra toa tsy mampidi-doza dia mety ho lasa sakana amin'ny fanodinana rakitra lehibe na amin'ny fikirakirana ny fampidirana mpampiasa be dia be. Ny vokatra mampidi-doza indrindra dia ny fanafihana ReDoS, izay misy mpilalao ratsy fanahy manome tady voavolavola tsara izay miteraka zava-bita ratsy indrindra amin'ny regex an'ny tranonkala iray, manantona tsara ny lohamilina ary mahatonga azy tsy ho azon'ny mpampiasa ara-dalàna. Ho an'ny orinasa, izany dia midika mivantana amin'ny fotoana fialan-tsasatra, ny vola miditra ary ny laza simba. Rehefa manangana rafitra saro-takarina, indrindra fa ireo izay manodina angona tsy azo itokisana, ny fahafantarana ireo fandrika regex ireo dia ampahany manan-danja amin'ny fiarovana sy ny fanaraha-maso ny zava-bita.
"Indray mandeha izahay dia nanana fanavaozam-baovao kely izay nampiditra regex handinihana ny tadin'ny mpampiasa-agent. Amin'ny entana ara-dalàna, dia tsara izany. Saingy nandritra ny fitohanan'ny fifamoivoizana dia niteraka tsy fahombiazana misesisesy izay nampihena ny API anay nandritra ny minitra. - Injeniera DevOps zokiolona
Manangana Rafitra Smarter miaraka amin'i Mewayz
Ahoana àry no hizorantsika hihoatra an'io teritery fototra io? Ny vahaolana dia ahitana fitambarana fitaovana tsara kokoa sy safidy ara-javakanto marani-tsaina kokoa. Voalohany, afaka mampiasa mpandinika regex ny mpamorona mba hamantarana ireo lamina misy olana ary hanoratra azy ireo mba hahomby kokoa (ohatra, amin'ny fampiasana quantifiers possessive na vondrona atomika). Ho an'ny fampandehanana faratampony dia misy ny algorithm hafa izay miantoka ny fotoana andalana, O(n), amin'ny fampitoviana lamina, na dia tsy dia fahita firy aza izany ao amin'ny tranomboky mahazatra.
Eto no manome tombony lehibe ny OS orinasa modular toa an'i Mewayz. Mewayz dia ahafahanao mampizarazara sy manara-maso ireo dingana manakiana. Raha tokony hanana fampiharana monolitika izay ahafahan'ny regex miadana iray mandringa ny rafitra manontolo, dia azonao atao ny mametraka microservice natokana ho an'ny famakafakana sy fanamarinana ny angona. Raha misy olana amin'ny fampandehanana dia voarakitra ary azo fehezina tsy misy fiantraikany amin'ny asa fandraharahana hafa. Fanampin'izay, ny fitaovana fanaraha-maso ao amin'ny sehatra Mewayz dia afaka manampy anao hamantatra ireo tsy fahombiazana ireo alohan'ny hiantraikany amin'ny mpanjifanao, mamadika ny krizy mety ho asa fanatsarana azo fehezina. Amin'ny alàlan'ny fananganana fototra azo tsapain-tanana sy azo tsapain-tanana, dia miantoka ianao fa ny lojikan'ny orinasanao, anisan'izany ny fanodinana lahatsoratra sarotra, dia mijanona ho mahomby sy maharitra.
💡 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 →Fanontaniana matetika
Ny vidiny miafina amin'ny fampitoviana lamina
Ho an'ny mpamorona, ny fiteny mahazatra (regex) dia fitaovana tena ilaina, antsy Tafika Soisa ho an'ny famakafakana, fanamarinana ary fanalana vaovao avy amin'ny lahatsoratra. Avy amin'ny fanamarinana ny endrika mailaka mankany amin'ny fikojakojana angon-drakitra avy amin'ny logs, regex no vahaolana. Na izany aza, ao ambanin'ity fasana mahery vaika ity dia misy fandrika fampisehoana izay nanakorontana ny rafitra nandritra ny am-polony taona maro: ny fahasarotan'ny fotoana ratsy indrindra amin'ny fitadiavana ny lalao rehetra ao anaty tady dia O(n²). Ity fahasarotana amin'ny fotoana quadratic ity dia midika fa rehefa mitombo tsikelikely ny tady fampidirana, dia mety hitombo be ny fotoana fanodinana, mitarika amin'ny fihemorana tsy ampoizina, faharerahan'ny loharanon-karena ary tranga iray antsoina hoe ReDoS (Regular Expression Denial of Service). Ny fahatakarana io famerana io no dingana voalohany amin'ny fananganana fampiharana matanjaka sy mahomby kokoa.
Nahoana ny Regex no mifanandrify amin'ny O(n²)? Ny olan'ny fihemorana
Ny fototry ny fahasarotan'ny O(n²) dia ao amin'ny rafitra ampiasain'ny ankamaroan'ny motera regex mahazatra: mihemotra. Rehefa misy motera regex, toy ilay ao amin'ny Perl, Python, na Java, manandrana mitady ny lalao rehetra azo atao, dia tsy mijery ny tady indray mandeha fotsiny. Mitrandraka lalana samihafa izy io. Diniho ny lamina tsotra toy ny `(a+)+b` ampiharina amin'ny tady misy "a" matetika, toy ny "aaaaaaaac". Ny motera dia mampifanaraka ny "a" rehetra amin'ny `a+' voalohany, avy eo manandrana mampifanaraka ny "b" farany. Rehefa tsy mahomby dia mihemotra izy—tsy mifanandrify amin'ny "a" farany ary manandrana ny fanisana `+` amin'ny vondrona ivelany. Miverina io dingana io, manery ny motera hanandrana ny fitambarana rehetra azo atao amin'ny fomba fanakambanana ny "a", izay mitarika ho amin'ny fipoahana mitambatra. Ny isan'ny lalana tsy maintsy hozahan'ny motera dia mety mifanandrify amin'ny efamira amin'ny halavan'ny tady, noho izany dia O(n²).
Ny fiantraikan'izao tontolo izao: Mihoatra noho ny fihemorana fotsiny
Tsy resaka akademika fotsiny izany. Ny regex tsy mahomby dia mety hisy fiantraikany ratsy eo amin'ny tontolo famokarana. Ny fisavana fanamarinana angon-drakitra toa tsy mampidi-doza dia mety ho lasa sakana amin'ny fanodinana rakitra lehibe na amin'ny fikirakirana ny fampidirana mpampiasa be dia be. Ny vokatra mampidi-doza indrindra dia ny fanafihana ReDoS, izay misy mpilalao ratsy fanahy manome tady voavolavola tsara izay miteraka zava-bita ratsy indrindra amin'ny regex an'ny tranonkala iray, manantona tsara ny lohamilina ary mahatonga azy tsy ho azon'ny mpampiasa ara-dalàna. Ho an'ny orinasa, izany dia midika mivantana amin'ny fotoana fialan-tsasatra, ny vola miditra ary ny laza simba. Rehefa manangana rafitra saro-takarina, indrindra fa ireo izay manodina angona tsy azo itokisana, ny fahafantarana ireo fandrika regex ireo dia ampahany manan-danja amin'ny fiarovana sy ny fanaraha-maso ny zava-bita.
Manangana Rafitra Smarter miaraka amin'i Mewayz
Ahoana àry no hizorantsika hihoatra an'io teritery fototra io? Ny vahaolana dia ahitana fitambarana fitaovana tsara kokoa sy safidy ara-javakanto marani-tsaina kokoa. Voalohany, afaka mampiasa mpandinika regex ny mpamorona mba hamantarana ireo lamina misy olana ary hanoratra azy ireo mba hahomby kokoa (ohatra, amin'ny fampiasana quantifiers possessive na vondrona atomika). Ho an'ny fampandehanana faratampony dia misy ny algorithm hafa izay miantoka ny fotoana andalana, O(n), amin'ny fampitoviana lamina, na dia tsy dia fahita firy aza izany ao amin'ny tranomboky mahazatra.
Amboary anio ny OS orinasanao
Avy amin'ny freelancer ka hatramin'ny masoivoho, Mewayz dia manana orinasa maherin'ny 138,000 miaraka amin'ny maody 208 mitambatra. Manomboha maimaim-poana, manavao rehefa mitombo ianao.
Mamorona kaonty maimaim-poana →We use cookies to improve your experience and analyze site traffic. Cookie Policy