ááœááºáá²á·áá±á¬ 9 ááŸá
áºáá®ážáá«ážá Cloudflare ááẠáá±ážáááºáá±á¬ áá¯áá¹ááá®áá
áºáá¯ááŒá
áºááŒá®áž áá»áœááºáá±á¬áºááẠáááºážá¡ááœáẠá¡áá¯ááºáááŒá
áºáá²á·áá«á áá»áœááºá¯ááºááẠáá±á¬ááºáááºáá
áºáŠážáá¬ááŒá
áºáááºá Cloudflare ááá¯ááœáá·áºááŒá®áž áá
áºáá¡ááŒá¬ááœáẠáá»áœááºá¯ááºááááºááá¯ááºááᯠá¡áááá±ážáá»ááºáá
áºáᯠáááºáá¶áááŸááá²á·áá«áááºá
"áá«á· DNS á áááºááŸá¬áá²" ááá¯áá²á· áá±á«ááºážá
ááºáá²á· Matthew Prince áᶠáá»ááºáá»ááºáž á
á¬áá±ážááŒá®áž áááºážááá¬ááá¯ááºáᬠá¡áá±ážá
ááẠá¡áá»ááºá¡áááºááœá± á¡ááŒáá·áºá¡á
á¯á¶áá²á· ááŸááºáá»á¬ážáá²á· á¡ááŒá±á¬ááºážááŒááºáá»ááºááᯠááŒááºááá¯á·áá²á·áá«ááẠ(
ááŸ- John Graham-Cumming
áááºá áœá²- á¡á±á¬ááºááá¯áᬠ7á 2010á 9:14
Subject: Re: áá»áœááºá¯ááºá DNS ááẠá¡áááºááŸá¬ááŸáááááºážá
To: Matthew Princeá¡á±ážá¡á±ážáá±ážáá±áž áááºááŒáá±ážáᬠáá»á±ážáá°ážáá«á ááŒá¿áá¬ááŸáááẠáá¯ááºážáááºááŸá¬ áá±áá»á¬áááºá áááºážááá¬ááá¯ááºáᬠá¡áá»ááºá¡áááºá¡á¬ážáá¯á¶ážááᯠáááºá á¯áá±á¬ááºážááŒá®ážáááºááŸáá·áº áááºážááŸáá·áºáááºáááºááá·áº ááá¯á·á áºáá áºáá¯áá±ážááẠááá¯ááºáááºáá«áááºá áá°ááœá±áᬠááœáá·áºáááºážááŒá®áž ááá¯ážáá¬ážáá²á· áá¬ááºáááºážááᯠááŸá áºáááºááŒáááá·áºáááºááá¯á· áááºáá«áááºá á¡áá°ážáááŒáá·áº á áááºá¡áá¯á¶ážááŒá¯áá»áááºááŸá á áá¬ááºááŒá±á¬á¡ááœá¬ážá¡áᬠááá¯ážáá¬áá¯á¶ááᯠááŒáááẠáááºážááœáẠááááºáá»á¬áž áá°ážááœá²áá¬ážáá»áŸááºá
áá»áœááºá¯ááºááẠáá»áœááºá¯ááºá site ááœáẠáá±á¬ááºážááœááºáá±á¬ á á±á¬áá·áºááŒáá·áºááŸá¯ ááŸáááŒá®áž áá»ááŸá¯á¶ážááŸá¯ááá¯ááºážá¡ááœáẠSMS ááᯠáááºáá¶áááŸááá«áááºá 13:03:07 á០14:04:12 áá áá»ááºááœááºááŸá¯ ááŒá áºááœá¬ážááŒá±á¬ááºáž á á±á¬áá·áºááŒáá·áºáá±á·áá¬ááŒááºážá០ááŒááááºá á ááºážáááºááŸá¯áá»á¬ážááᯠáá«ážáááá áºáá áºááŒááẠááŒá¯áá¯ááºáááºá
áááºážá¡á²áá«ááᯠáááááá·áºááẠáá«áá±áá»á¬áááºá á¥áá±á¬áááŸá¬ ááá·áºááá¯ááºááá¯ááºáá° áááá¯á¡ááºáá°ážááá¯áᬠáá±áá»á¬áá«ááá¬ážá ð
ááŒá®ážáá±á¬á· áá°á ááŒááºááŒá±á¬áááº
From: áááºááá°ážáááºážáá¬áž
áááºá áœá²- á¡á±á¬ááºááá¯áᬠ7á 2010á 9:57
Subject: Re: áá»áœááºá¯ááºá DNS ááẠá¡áááºááŸá¬ááŸáááááºážá
ááá¯á· : John Graham-Cummingáá»á±ážáá°ážáááºáá«áááºá áá±ážáá²á·áá°ááá¯ááºážááᯠáá¯á¶á·ááŒááºáá«áááºá á¡áᯠáá¯á¶ážááá¯ááœá¬ážáá±áááºá ââááá±á¬á·ááºááŸá¬ áá áºáá¯áá¯áá±ážááẠáá«ááŸááá¯áẠáá«ááá¯á·á á¬á á±á¬ááºáá¯ááºááŸá¬ ááá¬ážáááºá á¬áááºáááºá áá«áá¯á¶ážáááá±á¬áá°áááºá ááá¯ážáá¬ážááŸá¯áá¡áá¬áá¬áá«áá²á
á¡áá¯áá±á¬á· Cloudflare áᬠáááá·áºááᯠááŒá®ážáá¬ážáá²á· áá¯áá¹ááá®áá áºáá¯ááŒá áºááŒá®ážá áá»áœááºáá±á¬áºáᬠá¡á²áá«á¡ááœáẠá¡áá¯ááºáá¯ááºáá±ááŒá®áž á¡áá¯áá»áœááºá¯ááºááá¯á·áá²á· á¡ááŸá¬ážá áá°á·áá²á· á¡áá»áá¯ážáááºááœá±áá²á· áá»áœááºáá±á¬áºááá¯á·áá²á· áá¯ááºáááºááœá±á¡ááŒá±á¬ááºáž ááœáá·áºááœáá·áºáááºážáááºáž áá±ážááá«áááºá
áá°ááá¯áẠá ááẠá¡ááŒá áºá¡áá»ááºáá»á¬áž
áá°ááá¯ááºá 2 áááºáá±á·ááœáẠáá»áœááºá¯ááºááá¯á·ááẠWAFs á¡ááœáẠá
á®áá¶ááá·áºááœá²ááá·áº á
ááºážáá»ááºážáá»á¬áž ááœáẠá
ááºážáá»ááºážá¡áá
áºááᯠáá¯ááºááŒááºááá¯ááºáá«áááºá
áá¶ááá±á¬ááºážá áœá¬áá²á ááŒá®ážáá²á·ááá·áº ááŒá¬áááá±ážáá±á· á¡ááºááááºááœáẠHTTP/HTTPS CPU á¡áááºážá¡ááŒá áºáá»á¬ážááᯠá¡ááœááºá¡áá»áœá¶ ááŒá¯ááºážáá®ážááá·áº áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá áºáá¯áá«ááŸááááºá áá»áœááºá¯ááºááá¯á·á áááºáááá±á¬ááºá á®á CDN ááŸáá·áº WAF áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááẠááááºá¡ááŒá Ạáá¶á á¬ážáá²á·ááááºá HTTP/HTTPS á¡ááœá¬ážá¡áá¬ááᯠáááºáá±á¬ááºááŸá¯áá±ážáááºá¡ááœáẠáááá¯áááºáá¬á¡áááºážá¡ááŒá áºáá»á¬ážááẠáá»áœááºá¯ááºááá¯á·áááœááºáááºááŸááá¬áá¬áá»á¬ážáá±á«áºááœáẠ100% áá®ážáá«ážáá±á¬ááºááŸáááŒá±á¬ááºáž ááááºááá±á¬áºááŒáááºá
á¡ááŒá
áºá¡áá»ááºáá
áºáá¯á¡ááœááºáž ááŸááá±ááá·áºáá±áá¬áá
áºáá¯ááœáẠCPU á¡áá¯á¶ážááŒá¯ááŸá¯
ááááºá¡áá±ááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬áž (ááŸáá·áºáá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬áž) ááẠCloudflare ááá¯ááááºážáá»á¬ážááœáẠ502 á¡ááŸá¬ážá á¬áá»ááºááŸá¬áá áºáá¯ááŒáá·áº á¡áá¯á¶ážáááºááœá¬ážáá²á·áááºá 502 á¡ááŸá¬ážá¡ááœááºážáá»á¬ážááᯠCloudflare ááŸá±á·áá¯á¶ážáááºáá¬áá¬áá»á¬ážá០áá¯ááºáá±ážáá²á·áá±á¬áºáááºáž á¡ááá²á· Core áá»á¬ážááŸááá±áá±ážáá±á¬áºáááºáž HTTP/HTTPS á¡ááœá¬ážá¡áá¬ááᯠááá¯ááºááœááºááá·áº áá¯ááºáááºážá ááºáá»á¬ážááŸáá·áº áááºááœááºááááá«á
á€á¡áá¬ááẠáá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬áž áááºáá»áŸá¡áááºáááŒá±ááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áááá«áááºá áá«ááá¯á· áá±á¬áºáá±á¬áºááŸááºáááºá ááŒá®ážáá±á¬á· áá®áá»ááºááœááºááŸá¯á á¡ááŒá áºá¡áá»ááºááᯠáááááá±á¬ááºáá±á¬áẠáááá¯ááºááœááºááá¯ááºá¡á±á¬áẠáá¬ážáá®ážáá²á·áááºá
á¡áááºá áááºááẠá€áá±á¬ááºáááºáá»á¬ážáá²á០áá
áºáŠážááŒá
áºáá²á·áá»áŸáẠáááºááẠááŒá±á¬ááºááá·áºááŒááºážá áá±á«áááœááºááŒááºážááŸáá·áº á
áááºááá¯ážááŒááºážááŒá
áºááá¯ááºáááºá ááá¯á·á¡ááŒááºá áá»áœááºá¯ááºááá¯á·ááœáẠáááŸááá²á·áá«á (?:(?:"|'|]|}||d|(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))
áááºážááẠáááºážáááá¯ááºááá¯ááºáá¬áááºááœáẠá áááºáááºá á¬ážááœááºáá±á¬ááºážáá±á¬áºáááºáž (áááºážááᯠá¡á±á¬ááºááœááºá¡áá±ážá áááºááŒá±á¬ááŒáá«áááº) Cloudflare áááºáá±á¬ááºááŸá¯ááẠáá¯á¶ááŸááºá¡ááŒá±á¡áá±ááá¯ážááŒá±á¬áá·áºáá¬ááá¯ááºáá² 27 áááá áºááŒá¬ áááºááá·áºááœá¬ážáá²á·áááºá áá»ááŸá¯á¶ážááŸá¯ááᯠááŒá áºá á±áá²á· á¡ááŒá áºá¡áá»ááºááœá±áá²á· á¡ááá¯ááºážááᯠáá±á¬áºááŒááá¯á· á¡áá»áááºá¡áá±á¬áºááŒá¬áá²á·áá¬ááá¯á· áá¯á¶á·ááŒááºááá¯á· ááŸá±ážááœá±ážáá«áááºá ááá¯á·á áºáá¡áá¯á¶ážááœááºá áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááŒáá·áº backtracking ááá¯áá±á¬áºááŒááŒá®áž áááºážááŸáá·áºáááºááá¯á·áá¯ááºáá±á¬ááºááááºááᯠááŒá±á¬ááŒáá«áááºá
áá¬ááŒá áºáá¬áá²
á¡á á®á¡á ááºá¡ááá¯ááºáž á ááá¯ááºáá¡á±á¬ááºá á¡áá»áááºá¡á¬ážáá¯á¶ážááẠUTC ááœááºááŒá áºáááºá
ááœááºážááœá² á áá¬áá® áá áááá
áºááœáẠFirewall á¡ááœá²á·á០á¡ááºáá»ááºáá®áá¬áá
áºáŠážááẠáá±á¬ááºááŸááºážááŒááºážááá¯ááºáᬠá
ááºážáá»ááºážáá»á¬ážááᯠá¡áááºážáááºááŒá±á¬ááºážáá²ááŸá¯ ááŒá¯áá¯ááºáá²á·áááºá
3 áááá áºá¡ááŒá¬ááœááºá PagerDuty ááááá á¬áá»ááºááŸá¬áá±á«áºáá¬ááŒá®áž WAF ááŸáá·áºááŒá¿áá¬áá áºáá¯ááá¯ááááºážááá¯á·áááºá áááºážááẠáá¯á¶ááŸááºáááºáááºááŸá¯ááᯠá á±á¬áá·áºááŒáá·áºááẠCloudflare ááŒááºáááœáẠWAFs (áá»áœááºá¯ááºááá¯á·ááœáẠáááºážááá¯á·áá¬ááŸáá·áºáá»á®ááŸááááº) ááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá ááºážáááºááá·áº áá±á«ááºážá ááºá ááºážáááºááŸá¯ááŒá áºáááºá áááºážááᯠá¡ááŒá¬áž Cloudflare á¡áá¯á¶ážá០áááºáá±á¬ááºááŸá¯á ááºážáááºááŸá¯áá»á¬áž áá»ááºááœááºááŒááºážá ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáá¬ááºááŒá±á¬ááááºááá¯á·ááŸá¯ááŒá¿áá¬áá»á¬ážá áá»á¶á·ááŸá¶á·áá±áá±á¬ 502 á¡ááŸá¬ážáá»á¬ážááŸáá·áº áá»áœááºá¯ááºááá¯á·ááá±á¬ááºááŸáááŒááºážá¡ááŸáẠ(PoP) ááá¯á·á០á¡á á®áááºáá¶á á¬áá»á¬ážá áœá¬ á á¬áá»ááºááŸá¬áá»á¬ážá áœá¬ááᯠáá»ááºááŒááºážáá±á¬ááºááœáẠááá¯ááºáá«áá¬áá²á·áá«áááºá CPU á¡áááºážá¡ááŒá áºáá»á¬ážá
áá»áœááºá¯ááºááẠá€ááááá±ážáá»ááºáá»á¬ážá áœá¬ááᯠáááºáá¶áááŸáááŒá®áž á¡á ááºážá¡áá±ážáá áºáá¯á០áá¯ááºážááœááºáᬠáá»áœááºá¯ááºááá¯á·á áááºážááŒá±á¬ááºáž 80% áá¯á¶ážááŸá¯á¶ážááœá¬ážááŒá®áᯠáá»áœááºá¯ááºááá¯á·á ááŒá±ááŸááºážáá»áẠááœá¶á·ááŒáá¯ážááá¯ážáááºáá±ážáá¬á á¡ááŒá®ážá¡áá²á ááŒá±á¬áá±á¬á¡áá« á á¬ážááœá²áá®ááá¯á· áá»áŸá±á¬ááºááœá¬ážáá±áá«áááºá ááŒá¿áá¬ááᯠáá¯ááºáá±á¬ááºáá±ááŒá®ááŒá áºáá±á¬ áá»áœááºá¯ááºááá¯á·á SRE á¡ááºáá»ááºáá®áá¬áá»á¬ážáᶠáá»áœááºá¯ááºááŒá±ážáá²á·áááºá á¡á ááá±á¬á· ááááá²á· ááá¯ááºááá¯ááºááŸá¯áá»áá¯ážááá¯á· áá»áœááºáá±á¬áºááá¯á· áááºáá²á·áááºá
Cloudflare SRE á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠááá¹áá¬á¡ááŸá¶á· ááŒáá·áºáá»á²áá±ááŒá®áž á¡ááŒá±á¡áá±ááᯠáá¬áá®áááºáá¯á¶áž á á±á¬áá·áºááŒáá·áºáá±ááŒáááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áºá á€ááááá±ážáá»ááºáá»á¬ážááẠááá·áºá¡á¬áž ááá·áºáááºáááºáááºááá¯ááºáᬠáá®ážááŒá¬ážáá±áááá¯ááºáᬠááŒá¿áá¬áá»á¬ážááᯠá¡áááá±ážáááºá á¡ááœááºážááá¯ááºáž áááºááŸáºáá¯ááºáá»á¬ážááœáẠááŒá±áá¬áá¶ááŒá®áž áá áºáá±á·áá»áŸáẠá¡ááŒáááºáá»á¬ážá áœá¬ ááŒá±ááŸááºážáá±ážáá«áááºá ááá¯á·áá±á¬áº á€á á¬áá»ááºááŸá¬áá»á¬ážááŸáá·áº á¡ááŒá±á¬ááºážááŒá¬ážáá»ááºáá»á¬ážááẠá¡ááŸááºááááºááŒááºážáááºáá±á¬á¡áá¬ááᯠááœáŸááºááŒááŒá®áž SRE á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠááŒááºážáááºááŸá¯á¡ááá·áº P0 ááᯠáá»ááºáá»ááºážááŒá±ááŒá¬ááŒá®áž á á®áá¶ááá·áºááœá²ááŸá¯ááŸáá·áº á áá áºá¡ááºáá»ááºáá®áá¬áá»á¬ážááᯠáááºááœááºáá²á·áááºá
ááá¯á¡áá»áááºááœáẠáá»áœááºá¯ááºááá¯á·á áááºáááºá¡ááºáá»ááºáá®áá¬áá»á¬ážááẠáááºááááºážáááœáẠáá±á¬ááŒá±á¬ááœá²áá áºáᯠáá¬ážáá±á¬ááºáá±áá«áááºá áá±á¬ááŒá±á¬ááœá²ááᯠááŒááºáá±á¬ááºáá²á·ááááºá áá°ááá¯ááºážááẠá¡á ááºážá¡áá±ážáááºážááŒá®ážáá áºáá¯ááœáẠá á¯áá±ážááŒááŒá®áž áá»áœááºážáá»ááºáá°áá»á¬ážááᯠááá¯ááá±á«áºááŒáááºá áááºážááẠSRE áá»á¬ážááá¯ááºááá¯ááºááŒá±ááŸááºážááá¯ááºááá·áº áá¯á¶ááŸááºááŒá¿áá¬ááá¯ááºáá±á ááŸááºáááºáá±á¬ á¡áá°ážáá»áœááºážáá»ááºáá°áá»á¬áž áá«áááºááẠá¡áá±ážáááŒá®áž ááá¯á¡ááºáá«áááºá
14:00 ááœáẠááŒá¿áá¬á WAF ááŸáá·áº ááá¯ááºááá¯ááºááŒááºáž áááŸáááŒá±á¬ááºáž áá¯á¶ážááŒááºáá²á·áááºá á áœááºážáá±á¬ááºáááºá¡ááœá²á·ááẠCPU áá±áá¬ááá¯ááœá²áá¯ááºááŒá®áž WAF ááá¯á¡ááŒá áºáááºáááŒá±á¬ááºážááŸááºážáááºážáá¬áááºá á¡ááŒá¬ážáááºáááºážá áá±á¬ááºááŒá±á¬ááºážááá¯áá¯á¶ážááŒá®áž áá®áá®á¡áá¯áá®ááᯠá¡áááºááŒá¯áá²á·áá«áááºá WAF ááŸáá·áº ááŒá¿áá¬ááŸááá±ááŒá±á¬ááºáž ááŸááºáááºážáá»á¬ážááœáẠáá áºá á¯á¶áá áºáá±á¬ááºá ááŒááºáááºá ááœááºážááœá² 14:02 áá¬áá®ááœááºá áá áºááá¹áá¬áá¯á¶ážááŸá á¡á áááºá¡ááá¯ááºážáá áºáá¯á¡á¬áž ááááºáá áºááá·áº Cloudflare ááœáẠáááºáá±á¬ááºáá¬ážáá±á¬ global kill ááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááá¯ááŒá¯áá±á¬á¡áá« á¡ááœá²á·áá áºááœá²á·áá¯á¶áž áá»áœááºá¯ááºáá¶ááá¯á· áá±á¬ááºááŸááá¬áá«áááºá
WAF á¡ááœáẠáá»áœááºá¯ááºááá¯á· ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáááºááŒááºáá²á·áá¯á¶ááẠááá°áá®áá±á¬ áá¬ááºáááºážáá
áºáá¯ááºááŒá
áºáááºá áá«áᬠáááá¯ážááŸááºážáá«áá°ážá áá»áœááºá¯ááºááá¯á·ááẠáá»áœááºá¯ááºááá¯á·áááá¯ááºááá¯ááºáá¯ááºáá¯ááºáá»á¬ážááŸáá·áº áá»áœááºá¯ááºááá¯á·ááááºáá±á¬ááºááŸá¯ááᯠá
áááºá¡áá¯á¶ážááŒá¯áá«áááºá
Jira ááá¯á·ááá¯áẠáááºáá±á¬ááºááŸá¯á áá áºáá²á·ááá¯á· áá»áœááºá¯ááºááá¯á·áá¡ááœááºážááá¯ááºážáááºáá±á¬ááºááŸá¯áá»á¬ážááᯠááááá¯ááºáá«á áá»áœááºá¯ááºááá¯á· áááŒá¬áá á¡áá¯á¶ážááŒá¯áá±á·ááŸááá±á¬ ááŒá±ááŸááºážáá±áž ááá¹ááá¬ážáá áºáᯠááá¯á¡ááºáá«ááẠ(áááºážááᯠáá±á¬ááºážá áœá¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááẠááá¯á¡ááºáá«áááº)á áá±á¬ááºáá¯á¶ážááœááºá á¡ááºáá»ááºáá®áá¬áá áºáŠážááẠWAF ááᯠ14:07 ááœááºááááºááá¯ááºáá²á·ááŒá®áž 14:09 ááœááºá á¡ááœá¬ážá¡áá¬ááŸáá·áº CPU á¡ááá·áºáá»á¬ážááẠáá±áá¬ááá¯ááºážááœáẠáá¯á¶ááŸááºááŒááºááŒá áºáá²á·áááºá áá»áẠCloudflare á áá¬ááœááºááŸá¯ ááá¹ááá¬ážáá»á¬ážááẠáá¯á¶ááŸááºá¡ááá¯ááºáž á¡áá¯ááºáá¯ááºáá«áááºá
ááá¯á·áá±á¬áẠWAF ááá¯ááŒááºáááºáá°áá±á¬ááºáááºáá»áœááºá¯ááºááá¯á·áááºááŸááºáá¬ážáááºá á¡ááŒá±á¡áá±ááẠáá¬áááºááá¯ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·ááẠá¡áá¯ááºááá¹ááá¬á á áºáá±ážááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá²á·ááẠ(á¡ááŒá±á¬ááºážá¡áá²á á¡ááŸááºááááºááŒá¿áá¬ááŸááááŸá ááááááá¯ááºááá¯áá±ážááŒááºáž) ááŸáá·áº á¡ááŒá¯ááá±á¬áá±á¬ááºáá±á¬á á áºáá±ážááŸá¯áá»á¬áž (ááŒááºááááºážááŒááºážááŸá¬ áá±áá»á¬á¡á±á¬ááºááŒá¯áá¯ááºááŒááºáž) ááᯠáá®ážááŒá¬ážá¡ááœá¬ážá¡áá¬ááá¯á¡áá¯á¶ážááŒá¯á ááŒáá¯á·áá áºáá¯áááºážááœáẠááœá±áá±ážáá»á±áá±á¬áá±á¬ááºáááºáá»á¬ážááᯠááœáŸá²ááŒá±á¬ááºážáá±ážáá«áááºá
14:52 ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±á¬ááºážááŒáá»ááºááá¯áá¬ážáááºááŒá®áž ááŒá¯ááŒááºááŸá¯áá áºáá¯ááŒá¯áá¯ááºááŒá®áž WAF ááᯠáááºáá¶ááœáá·áºáá¬ážááŒá±á¬ááºáž áá»áœááºá¯ááºááá¯á·áá¯á¶ááŒááºá áááºáá»áá²á·áááºá
Cloudflare áááºááá¯á¡áá¯ááºáá¯ááºáá²á
Cloudflare ááœáẠWAF áá»á¬ážá¡ááœáẠá ááºážáá»ááºážáá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááẠáááºá á°ážáá¬ážáá±á¬ á¡ááºáá»ááºáá®áá¬á¡ááœá²á·áá áºááœá²á·ááŸááááºá áááºážááá¯á·ááẠáá±á¬ááºááŸááºážááŸá¯ááŸá¯ááºážááᯠááŒáŸáá·áºáááºáááºá ááŸá¬ážááœááºážáá±á¬ á¡ááŒá¯ááá±á¬áá±á¬ááºááŸá¯áá»á¬ážááᯠáá»áŸá±á¬á·áá»áááºááŸáá·áº áááºážááá¯á· ááœááºáá±á«áºáá¬áá»áááºááœáẠááŒáááºážááŒá±á¬ááºááŸá¯á¡áá áºáá»á¬ážááᯠáá»ááºááŒááºá áœá¬ áá¯á¶á·ááŒááºááẠááŒáá¯ážá á¬ážááŒáááºá ááŒá®ážáá²á·ááá·áº áááºáá±á«ááºáž 60 á¡ááœááºážá WAF á¡ááœáẠá á®áá¶ááá·áºááœá²áá¬ážáá±á¬ á ááºážáá»ááºážáá»á¬ážá¡ááœáẠá¡ááŒá±á¬ááºážá¡áá² áá±á¬ááºážááá¯ááŸá¯ 476 áᯠ(áá»ááºážáá»áŸá¡á¬ážááŒáá·áº 3 áá¬áá®áá»áŸáẠáá áºáá¯) ááŸááááºá
á¡ááŸááºáááẠáá¯á¶ážá áœá²áá° áááºážááŒá±á¬ááºážááẠá ááºážáááºážááᯠááŒááºáááºážááœá¬ážáá±á¬áºáááºáž áááºááá·áºá¡áá¬á០ááááºááá¯á·áá¬ážááŒááºážáááŸááá±á¬ á á®á á áºáá¯ááºááœáẠá€á¡áá°ážááŒá±á¬ááºážáá²ááŸá¯ááᯠá¡áá¯á¶ážáá»ááẠááá¯á¡ááºáá«áááºá á ááºážáá»ááºážáá»á¬ážá áááá±á¬ááºááŸá¯ááᯠá ááºážáááºáááºááŸáá·áº ááŸá¬ážááœááºážáá±á¬ á¡ááŒá¯ááá±á¬ááŸáá·áº ááŸá¬ážááœááºážáá±á¬ á¡áá¯ááºááŸá¯ááºážáá»á¬ážááᯠááá¯ááºážáá¬ááẠá€áá¯ááºááᯠá¡áá¯á¶ážááŒá¯áá«áááºá ááá¯á·áá±á¬áº simulation áá¯ááºááœááºáááºá á ááºážáá»ááºážáá»á¬ážááᯠá¡ááŸááºááááºáá¯ááºáá±á¬ááºááááºááŒá áºááŒá®ážá á€á¡ááŒá±á¡áá±ááœáẠá ááºážáá»ááºážááœáẠáááá¯áááºáá¬á¡áááºážá¡ááŒá áºáá»á¬áž á¡ááœááºá¡áá»áœá¶áá¯á¶ážá áœá²áá±ááá·áº áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºáá«ááŸááááºá
á¡áááºáá±á¬áºááŒáá« ááŒá±á¬ááºážáá²ááŸá¯áá±á¬ááºážááá¯áá»ááºá០áááºááœá±á·ááŒááºááá¯ááºáááºá¡ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááœáẠááŒáá·áºáá»ááºááŸá¯á¡á á®á¡á ááºá áá±á¬ááºááŒááºááœá²ááá·áºá¡á á®á¡á ááºááŸáá·áº á€á¡áá¯á¶ážááŒá¯ááŸá¯á¡áá»áá¯ážá¡á á¬ážá¡ááœáẠá¡ááœááºážááá¯ááºážá á¶áááºáááºááŸá¯áá¯ááºáááºážá áẠ(SOP) ááá·áºááºáá áºáá¯ááŸááááºá á ááºážáá»ááºážáá áºáá¯ááŒá±á¬ááºážáá²ááŒááºážá¡ááœáẠSOP ááẠáááºážá¡á¬áž áá áºááá¹áá¬áá¯á¶ážááá¯á· áá¯ááºáá±ááœáá·áºááŒá¯áááºá ááááºáá±á¬á·á Cloudflare ááœááºá á¡áá¬áá»á¬ážááᯠáá¯á¶ážáááœá²ááŒá¬ážá áœá¬áá¯ááºáá±á¬ááºááŒá®áž SOP á០áá»áœááºá¯ááºááá¯á·ááẠá ááºážáááºááŒááºážááŸáá·áº á ááºááœááºážá¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœáẠáá±á¬á·ááºáá²ááᯠáŠážá áœá¬á¡ááœááºážááá¯ááºážáá±á¬ááºááŸááá±ááá·áºáá±áᬠ(PoP) (áá»áœááºá¯ááºááá¯á·ááááºáááºážáá»á¬ážá¡áá¯á¶ážááŒá¯ááá·áº) ááá¯á· ááá¯á·áá±á¬ááºááŒá®ážáá±á¬ááºááœáẠáá¯á¶ážá áœá²áá°á¡áááºážá á¯áá¶ááá¯á· ááá¯á·áá±á¬ááºááẠá¡áááá·áºáá±ážáá«áááºá áá®ážááŒá¬ážáááºáá±áá¬áá áºáá¯á ááá¯á·áá±á¬ááºáá±á¬ááºáááºá¡áá»á¬ážá¡ááŒá¬ážáá®ááá¯á·á ááá¯á·áá±á¬ááºááŸáá¬ááá¹áá¬áá áºááŸááºážáá¯á¶ážááá¯á·á
áá«á áá¬áá¯á¶áá²á áá»áœááºá¯ááºááá¯á·ááẠBitBucket ááŸáá áºááá·áº git ááá¯ááŒááºááœááºážáá¡áá¯á¶ážááŒá¯áááºá á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±áá±á¬ á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠTeamCity á¡ááœáẠáááºáá±á¬ááºáá¬ážááá·áº áá¯ááºááᯠáááºááœááºážááŒááŒá®áž áááºáá±á¬ááºááŸá¯ ááŒá®ážáá¯á¶ážááá·áºá¡áá« áá¯á¶ážáááºáá°áá»á¬ážááᯠáá¬áááºáá±ážá¡ááºáááºá ááœá²áá¯ááºááŒááºážáá±á¬ááºážááá¯ááŸá¯ááᯠá¡áááºááŒá¯ááŒá®ážáááºááŸáá·áºá áá¯ááºááᯠá á¯á ááºážááŒá®áž á ááºážáááºááŸá¯áá»á¬ážá áœá¬ááᯠáá¯ááºáá±á¬ááºááẠ(áá áºáááº) ááŒá áºáááºá
áááºáá±á¬ááºááŒá®áž á
ááºážáááºááŸá¯áá»á¬áž á¡á±á¬ááºááŒááºáá«áá á¡ááŒá±á¬ááºážá¡áá² áá±á¬ááºážááá¯áá»ááºáá
áºáá¯ááᯠJira ááœáẠáááºáá®ážáá¬ážááŒá®áž ááá·áºáá»á±á¬áºáá±á¬ áááºáá±áá»á¬ ááá¯á·ááá¯áẠáŠážáá±á¬ááºáá°á á¡ááŒá±á¬ááºážá¡áá²ááᯠá¡áááºááŒá¯ááá«áááºá á¡áááºááŒá¯ááŒá®ážáá±á¬ááºá ááŒáá·áºáá»ááºááŸá¯ááẠ"PoP menagerie" áá¯áá±á«áºáááº- DOGá PIG ááŸáá·áº
DOG PoP ááẠCloudflare áááºáááºážáá»á¬ážááŸáᬠá¡áá¯á¶ážááŒá¯ááá·áº (á¡ááŒá¬ážááŒáá¯á·áá»á¬ážáá²á·ááá¯á·) Cloudflare PoP áá áºáá¯ááŒá áºáááºá ááŒááºááœááºážá¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœáẠPoP ááẠáá¯á¶ážá áœá²áá°á¡ááœá¬ážá¡áá¬áá»á¬ážááŒá±ááŸááºážáá»ááºááá¯á·áá á®ážáááºážáá® ááŒá¿áá¬áá»á¬ážááᯠáááºážáá¯ááºááá¯ááºá á±áá«áááºá á¡áá¯á¶ážáááºáá²á·á¡áá¬á
DOG á
ááºážáááºááŸá¯ á¡á±á¬ááºááŒááºáá«áá áá¯ááºááẠPIG (guinea pig) á¡ááá·áºááá¯á· ááœá±á·ááœá¬ážáá«áááºá áááºážááẠáá¯ááºá¡áá
áºááŸáá
áºááá·áº á¡ááá²á·áá¯á¶ážá
áœá²áá°á¡ááœá¬ážá¡áá¬á¡áááºážáááºáᬠá
á®ážáááºážááá·áº Cloudflare PoP ááŒá
áºáááºá
á¡á¬ážáá¯á¶ážá¡áááºááŒá±ááẠáá¯ááºá Canary áá²ááá¯áá±á¬ááºááœá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááœáẠááá¹áá¬áá
áºááŸááºážááŸá ááá°áá®áá±á¬áá±áá¬áá»á¬ážááœáẠCanary PoP áá¯á¶ážáá¯ááŸááááºá áááºážááá¯á·ááœááºá á¡ááá±ážááŸáá·áº á¡ááá²á·áá±á¬ááºáááºáá»á¬ážá áááºážááŒá±á¬ááºážááẠáá¯ááºá¡áá
áºááŸáá
áºááá·áº ááŒááºáááºážááœá¬ážááŒá®ážá áááºážááẠá¡ááŸá¬ážáá»á¬ážá¡ááœáẠáá±á¬ááºáá¯á¶ážá
á
áºáá±ážáá»ááºááŒá
áºáááºá
Cloudflare ááœáẠáá±á¬á·ááºáá²ááŒáá·áºáá»ááá±áž áá¯ááºáááºážá
ááº
Canary ááœáẠáá¯áẠá¡áááºááŒá±áá«áá áá»áœááºá¯ááºááá¯á·á áááºážááᯠáá¯ááºáá±ážáá«áááºá á¡ááá·áºá¡á¬ážáá¯á¶áž- DOGá PIGá Canaryá ááá¹áá¬áá áºáá¯áá¯á¶áž- áá¯ááºááŒá±á¬ááºážáá²ááŸá¯áá±á«áºáá°áááºá áá¬áá®áá±á«ááºážáá»á¬ážá áœá¬ ááá¯á·ááá¯áẠáááºáá»á¬ážá áœá¬ááŒá¬áááºá Cloudflare á ááœááºáááºááŸáá·áº áá±á¬ááºáááºáá»á¬áž ááœá²ááŒá¬ážááŸá¯ááŒá±á¬áá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶ážá áœá²áá°áá»á¬ážá¡á¬ážáá¯á¶ážáᶠááá¹áá¬áá áºááŸááºážá០ááá¯ááºááŒááºáá® áá¯ááºááᯠáá±áá»á¬á áœá¬ á ááºážáááºáá«áááºá ááá¯á·áá±á¬áº WAF ááẠááŒáááºážááŒá±á¬ááºááŸá¯áá»á¬ážááᯠáá»ááºááŒááºá áœá¬ áá¯á¶á·ááŒááºááẠááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº á€áá¯ááºáááºážá ááºááᯠá¡ááá¡áá» áááá¯ááºáá¬áá«á
WAF ááŒáááºážááŒá±á¬ááºááŸá¯áá»á¬áž
ááœááºáá²á·ááá·áºááŸá
áºá¡áááºážáááºá¡ááœááºážá á¡áá»á¬ážáá¯á¶ážá¡ááá®áá±ážááŸááºážáá»á¬ážááœáẠááŒáááºážááŒá±á¬ááºááŸá¯áá»á¬áž áááááá¬áá¬ááá¯ážáá¬áá²á·áááºá áááºážááẠáá±á¬á·ááºáá²ááºá
ááºážáááºááŒááºážáááááá¬áá»á¬áž ááá¯ááá¯áááŸáááá¯ááºááŒááºážááŒá±á¬áá·áºááŒá
áºáááºá á¥ááá¬á¡á¬ážááŒáá·áº áááŒá¬áá±ážáá®á áá±ážáá²á·áá±á¬ á¡ááŒá±á¬ááºážáá»á¬áž
source:
áááŒá¬ááááá¯áááá¯á á¡ááá®áá±ážááŸááºážááᯠááááºážááááºážáá¬ážááá·áºá¡ááœá²á·áá»á¬ážááẠáááºážááᯠáá»ááºááŒááºá áœá¬á ááºážáááºááá¯ááºááŒá®áž áá¯á¶áá±á¬ááºá áœá¬áá¯á¶ááŒá¯á¶ááŒá±á¬ááºáž áá±áá»á¬á á±áááºá¡ááœáẠá¡áá°á¡áá¡áá±á¬ááºá¡áá¬ážáá áºáá¯ááᯠáááºáá®ážááŒá®áž Github ááœáẠáá»ááºáá»ááºážáá¯ááºááŒááºáá±á·ááŸááááºá ááá¯á·ááŒá±á¬áá·áºá Cloudflare ááẠáá±á¬ááºáááºáá»á¬ážááẠáááºážááá¯á·ááá±á¬á·ááºáá²ááºááᯠááŒá¯ááŒááºááẠá¡ááœáá·áºá¡áááºážááŸáá á±ááẠááá¯ááºááá¯ááºááŸá¯á¡áá áºáá»á¬ážááᯠáááºááá¯ááºááá»áŸ áá»áŸááºááŒááºá áœá¬ áá¯á¶á·ááŒááºááá¯ááºá áœááºážááŸáááẠááá¯á¡ááºáá«áááºá
Cloudflare á áá»ááºááŒááºáá±á¬áá¯á¶á·ááŒááºááŸá¯á áá±á¬ááºážááœááºáá±á¬ á¥ááá¬áá
áºáá¯ááŸá¬ áá±áááœáẠSharePoint á¡á¬ážáááºážáá»ááºááᯠáá¬ááœááºááŒááºážááŒá
áºááẠ(
ááŒá¬áááá±ážáá±á·ááœáẠááŒá¿áá¬ááŒá áºá á±áá²á·áá±á¬ á ááºážáá»ááºážááẠcross-site scripting (XSS) ááᯠáá¬ááœááºáááºáᯠáá°áááááºá áááŒá¬áá±ážáá®ááŸá áºáá»á¬ážá¡ááœááºáž ááá¯ááá¯á·áá±á¬ ááá¯ááºááá¯ááºááŸá¯áá»á¬ážááẠááá¯á áááŒá¬áá ááŒá áºááœá¬ážáá¬áá«áááºá
source:
WAF á¡ááœáẠá á®áá¶ááá·áºááœá²áá¬ážáá±á¬ á ááºážáá»ááºážááᯠááŒá±á¬ááºážáá²ááŒááºážá¡ááœáẠá á¶áá¯ááºáá¯á¶ážáá¯ááºáááºážááẠááá¹áá¬áá¯á¶ážááá¯ááºáᬠááŒáá·áºáá»ááºááŒááºážáááŒá¯áá® á ááºáááºáááŒáẠáá±á«ááºážá ááºážááŒááºáž (CI) á ááºážáááºááŒááºážááᯠááŒá¯áá¯ááºáááºááŒá áºáááºá ááŒá®ážáá²á·áá²á· ááŒá¬áááá±ážáá±á·áá¯ááºážááááºáž áá«ááá¯áá¯ááºáá²á·ááŒá®áž á ááºážáááºážáá»ááºááœá±ááᯠáá¯ááºááŒááºáá²á·áá«áááºá ááœááºážááœá² áážáá áá¬áá®ááœáẠá¡ááºáá»ááºáá®áá¬áá áºáŠážááẠá¡ááŒá±á¬ááºážá¡áá²áá áºáá¯ááŸáá·áºá¡áá° á¡áááºááŒá¯ááœá²áá°ááẠáá±á¬ááºážááá¯áá»ááºááᯠáááºááœááºážáá²á·áááºá
13:37 ááœáẠTeamCity ááẠá ááºážáááºážáá»á¬ážááᯠáá±á¬ááºáá°ááŒá®áž á ááºážáááºááŸá¯áá»á¬áž áá¯ááºáá±á¬ááºáᬠáááºáááºáá¯ááºáá±á¬ááºááœá¬ážáááºááŒá áºáááºá WAF á ááºážáááºááŸá¯á¡á á¯á¶ááẠWAF á á¡ááááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá ááºážáááºááŒá®áž áá áºáŠážáá»ááºážáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáá°áá áºá ááºážáááºááŸá¯áá»á¬ážá áœá¬ áá«áááºáá«áááºá áá°áá áºá ááºážáááºááŸá¯áá»á¬ážááŒá®ážáá±á¬ááºá HTTP áá±á¬ááºážááá¯áá»ááºá¡áá»á¬ážá¡ááŒá¬ážááᯠá¡áá¯á¶ážááŒá¯á WAF á¡ááœáẠá ááºážáá»ááºážáá»á¬ážááᯠá ááºážáááºáá²á·áááºá HTTP áá±á¬ááºážááá¯áá»ááºáá»á¬ážááẠáááºááá·áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠWAF á០ááááºááá¯á·ááá·áºááẠ(ááá¯ááºááá¯ááºááŸá¯ááᯠááŒá¬ážááŒááºááá·áºáá¬ážáááº) ááŸáá·áº ááŒááºáááºážááœáá·áºááŒá¯ááá¯ááºááẠ(á¡áá¬á¡á¬ážáá¯á¶ážááᯠááááºááá¯á·áááºááŸáá·áº ááŸá¬ážááœááºážáá±á¬á¡ááŒá¯ááá±á¬áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážáááº) á á áºáá±ážáá«á ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠCPU á¡ááœááºá¡áá»áœá¶á¡áá¯á¶ážááŒá¯ááŸá¯á¡ááœáẠáá ááºážáááºáá²á áááẠWAF áááºáá±á¬ááºááŸá¯áá»á¬ážáááŸááºáááºážáá»á¬ážááᯠá á áºáá±ážááŒááºážááŸá¬ á ááºážáááºážá ááºážáááºááŸá¯áá¯ááºáá±á¬ááºáá»áááºáááá¯ážááŒá±á¬ááºážááŒáááŒá®áž á¡áááºážá¡ááŒá áºáá»á¬áž áá¯á¶áá±á¬ááºááŸá¯áááŸáááŒá±á¬ááºáž áá¶ááááŸáááẠáááºáá²áá«áááºá
á ááºážáááºááŸá¯áá»á¬áž á¡á±á¬ááºááŒááºááŒá®áž TeamCity ááẠ13:42 áá¬áá®ááœáẠá¡ááŒá±á¬ááºážá¡áá²ááᯠá¡ááá¯á¡áá»á±á¬áẠááŒáá·áºáá»ááºá áááºáá²á·áááºá
Quicksilver
WAF á ááºážáá»ááºážáá»á¬ážááẠáá»ááºáá»ááºážááŒáááºážááŒá±á¬ááºááŸá¯ááᯠááŒááºáááºááŒááºáááºááŒááºážá¡áá±á«áº á¡á¬áá¯á¶á áá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠá áá¹ááá·áºááá¯ááºážá¡ááœááºáž áá áºááá¹áá¬áá¯á¶ážááá¯á· ááŒá±á¬ááºážáá²áá»á¶á·ááŸá¶á·á á±ááá·áº Quicksilver á ááŒáá·áºáá±áá¬ážáá±á¬ áá±á¬á·áááºááá¯ážá ááá¯ážááᯠá¡áá¯á¶ážááŒá¯á áááºážááá¯á·ááᯠááŒáá·áºáá»ááºáá»áá¬ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠáááºááŸáºáá¯ááºááŸá ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááᯠááá¯á·ááá¯áẠAPI ááŸáá áºááá·áº ááŒá±á¬ááºážáá²áá±á¬á¡áá«ááœáẠáááºážááá¯á·ááẠá€áááºážááá¬ááᯠá¡áá¯á¶ážááŒá¯ááŒááŒá®áž á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠáá»áŸááºá á®ážááŒá±á¬ááºážá¡ááŒááºááŸá¯ááºážááŒáá·áº áá¯á¶á·ááŒááºááá·áºá¡ááœáẠáá»á±ážáá°ážáááºáá«áááºá
Quicksilver á¡ááŒá±á¬ááºáž áá»áœááºáá±á¬áºááá¯á· ááááºáááŒá±á¬ááŒá
áºáá±ážáá«áá°ážá á¡áááºá áá»áœááºáá±á¬áºááá¯á· áá¯á¶ážáááºá
áááºááŸáºáá¯ááºáá±á«áºááŸá ááá¯ááºáá áºáá¯ááᯠááŸáááºááŒááºáž ááá¯á·ááá¯áẠAPI ááá¯áá±á«áºááá¯ááŒááºážá០ááá¹áá¬áá áºááŸááºážááŸá ááœá²á·á ááºážááŸá¯áá¯á¶á á¶ááŒá±á¬ááºážáá²ááŸá¯áá áºáá¯ááŒá¯áá¯ááºááẠá áá¹ááá·áºá¡áááºážáááºáᬠááŒá¬áá«áááºá áááºáá°áá°áá»á¬ážááẠá€áááºáááºááŸá¯ááŒááºááŸá¯ááºážááᯠááŸá áºáááºááŒáááºá á¡áá¯ááºááá¬ážáá»á¬ážááẠáááºážááá¯á·á¡á¬áž ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáá±á¬á·ááºáá²ááºááŒáá·áºáá»ááºááŸá¯ááᯠáá»ááºáá»ááºážáá®ážáá«áž áá±á¬ááºááœááºáá±ážáááºá áá»ááºážáá»áŸá¡á¬ážááŒáá·áº Quicksilver ááẠáá áºá áá¹ááá·áºáá»áŸáẠááŒá±á¬ááºážáá²ááŸá¯ 350 ááá·áº áá»á¶á·ááŸá¶á·áááºá
ááŒá®ážáá±á¬á· Quicksilver á á¡áááºážááŒááºáááºá áá»ááºážáá»áŸá¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠááá¹áá¬áá áºááŸááºážááŸá ááœááºáá»á°áá¬ááá¯ááºážááœáẠááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááᯠáá¯ááºááœáŸáá·áºááẠ99th áá¬ááá¯ááºááŸá¯ááºážá 2,29 á áá¹ááá·áºááᯠáááŸááá²á·áá«áááºá á¡ááŸáááºá áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá±á¬ááºážáá²á·á¡áá¬áá«á ááŒá®ážáá±á¬ááºá áááºáá¯ááºáá±á¬ááºááŸá¯áá áºáá¯á¡á¬ážááœáá·áºáá« ááá¯á·ááá¯áẠáááºááŸáºááá¯ááŸááºážáááºážáá±á¬á¡áá«á áááºážáááºáá»ááºáá»ááºážááŸáá·áºáá±áá¬ááá¯ááºážáá®ážáá«ážááŒá áºáááá·áºáááºá Cloudflare Workers ááŸáááá·áº áá¯ááºáá±ážááá¯á·ááŒááºážááẠáá°áá®áá±á¬á¡ááŒááºááŸá¯ááºážááŒáá·áº ááŒá áºáá±á«áºáá«áááºá Cloudflare ááẠáááºážááá±á¬ááºáááºáá»á¬ážá¡á¬áž á¡áá»áááºáááºáá»áŸááºááŒááºáá±á¬á¡ááºááááºáá»á¬ážááᯠááááá±ážáá«áááºá
ááá¯á·áá±á¬áº á€ááá
á¹á
ááœááºá á¡ááŒááºááŸá¯ááºážááẠáá»áœááºá¯ááºááá¯á·á¡ááœáẠáááºá
ááºááŒááºážááŒá¯ááºáá±á¬áá¬ááá
áºáá¯ááŒá
áºááŒá®áž á
áá¹ááá·áºááá¯ááºážá¡ááœááºáž áá±áá¬ááá¯ááºážá á
ááºážáá»ááºážáá»á¬áž ááŒá±á¬ááºážáá²ááœá¬ážáááºá WAF áá¯ááºááẠLua ááá¯á¡áá¯á¶ážááŒá¯áááºááᯠáááºáááááŒá¯áááá±áááºá Cloudflare ááẠáá¯ááºáá¯ááºááŸá¯ááŸáá·áº á¡áá±ážá
áááºá¡áá»ááºá¡áááºáá»á¬ážááœáẠLua ááᯠá¡áá»ááºáááá·áºá¡áá¯á¶ážááŒá¯áááºá
á ááºážáá»ááºážáá»á¬ážááᯠá¡áá¯á¶ážáááŒá¯áá®á á¡áá¬á¡á¬ážáá¯á¶áž áá»á±á¬ááœá±á·ááœá¬ážáááº- ááœá²áá¯ááºááẠáá±á¬ááºážááá¯ááŸá¯ááᯠáááºáá®ážááŒá®áž á¡áááºááŒá¯ááá¯ááºáááºá CI/CD ááá¯ááºááá¯ááºážááẠáá¯ááºááᯠá á¯áá±á¬ááºážááŒá®áž á ááºážáááºáááºáá ááŒáá·áºáá»ááºááŒááºážááŸáá·áº áá±á¬ááºááŒááºááœá²ááŒááºážááᯠááááºážáá»á¯ááºááá·áº SOP á¡á ááŒá±á¬ááºážáá²ááŸá¯ áá±á¬ááºážááá¯áá»ááºááᯠáááºááœááºážáá²á·ááŒá®ážá ááŒáá·áºáá»ááºááŸá¯ ááŒá®ážááŒá±á¬ááºáá²á·áááºá
Cloudflare WAF ááŒáá·áºáá»ááºááŸá¯ áá¯ááºáááºážá
ááº
áá
áºáá¯áá¯ááŸá¬ážááœá¬ážáááºá
áá«ááŒá±á¬áá²á·ááá·áºá¡ááá¯ááºážá áá»áœááºá¯ááºááá¯á·ááẠá¡áááºá
áẠWAF á
ááºážáá»ááºážá¡áá
Ạáá«áááºáá»á¬ážá
áœá¬ááᯠááŒáá·áºáá»ááºáá¬ážááŒá®ážá ááá¯ááá¯á·áá±á¬ ááŒáá·áºáá»ááºááŒááºážá ááá¯ážáá»áá¯ážáá»á¬ážááᯠáá¬ááœááºáááºá¡ááœáẠáá»áœááºá¯ááºááá¯á·ááœáẠá
áá
áºáá»á¬ážá
áœá¬ááŸááááºá áá
áºáá¯áᯠááŸá¬ážááœá¬ážáá±á¬á¡áá«á á¡ááŒá±á¡áá±áá»á¬ážá
áœá¬ááᯠáá
áºááŒáá¯ááºááẠáá±á«ááºážá
ááºáááááºáááºá á¡ááŒá±á¬ááºážááŒáá»ááºáá
áºáá¯áááºážááᯠááŸá¬ááœá±á·áá«áá á€áááºááŸá¬ áá±áá»á¬áááºááŸá¬ á
áááºáá»ááá¯ááºáááºá ááá¯á·áá±á¬áº á¡ááŒá²áááºážáááŸááºáá«á á€á¡áá¬áá»á¬ážááẠáá»áœááºá¯ááºááá¯á·á HTTP/HTTPS áááºáá±á¬ááºááŸá¯ááᯠáá»ááºááœááºááœá¬ážá
á±ááá·áº á¡ááŒá±á¬ááºážáááºážáá»á¬ážááŒá
áºáááºá
- á¡ááºáá»ááºáá®áá¬áá
áºáŠážááẠá¡ááœááºá¡áá»áœá¶ááŒá
áºáá±á«áºááá¯ááºááá·áº áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠáá±ážáá¬ážáá²á·áááºá
áá±á¬ááºááŒá±á¬ááºážááŒááºááŒááºáž . - áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠCPU á¡ááœááºá¡áá»áœá¶ááŒá¯ááºážáá®ážááŒááºážá០áá¬ážáá®ážááá¯ááºááá·áº á¡ááºá¹áá«áááºáá áºáá¯ááᯠá¡á á±á¬ááá¯ááºážáááºááá¹ááááºáá»á¬ážá áœá¬á WAF áááŒááºáááºááŒá¯ááŒááºááŸá¯ááœáẠááŸá¬ážááœááºážáááºááŸá¬ážáá²á·áááº- WAF ááẠá¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá»á±á¬á·áááºážáá¯á¶ážá áœá²á á±ááẠááŒááºáááºááŒá¯ááŒááºááŒááºáž ááá¯á¡ááºáá«áááºá
- áá¯á¶ááŸáẠá áá¬ážáááºá¡ááºáá»ááºááœáẠááŸá¯ááºááœá±ážááŸá¯á¡á¬ááá¶áá»ááºáááŸááá«á
- á ááºážáááºááŸá¯á¡á á¯á¶ááẠá¡ááœááºá¡áá»áœá¶ CPU áá¯á¶ážá áœá²ááŸá¯ááᯠáááœá±á·ááŸáááá¯ááºáá«á
- SOP ááẠá¡áá±ážáá±á«áºááá¯ááºáá±á¬ á ááºážáá»ááºážá¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠá¡ááá·áºáá±á«ááºážáá»á¬ážá áœá¬ áá¯ááºáá±á¬ááºá áá¬áááá¯áá² áá áºááá¹áá¬áá¯á¶ážááœáẠá¡áá±á¬ááºá¡áááºáá±á¬áºááẠááœáá·áºááŒá¯áá¬ážáááºá
- áá±á¬ááºááŒááºááœá²ááá·áºá¡á á®á¡á ááºááẠá¡áá»áááºááŒá¬ááŒáá·áºááá·áº WAF áááºáá±á¬ááºááŸá¯ ááŸá áºááŒáááºáá¯ááºáá±á¬ááºááẠááá¯á¡ááºáááºá
- ááá¹áá¬áá¯á¶ážááá¯ááºáᬠáá¬ááºááŒá±á¬ááááºááá¯á·ááŸá¯ááŒá¿áá¬áá»á¬ážááŸáá·áºáááºáááºá ááááá¯á¶ážááááá±ážáá»ááºááŸá¬ á¡ááœááºáá±á¬ááºáá»ááœá¬ážááŒá®ááŒá áºáááºá
- á¡ááŒá±á¡áá±á á¬áá»ááºááŸá¬ááᯠá¡ááºááááºáá¯ááºááẠá¡áá»áááºá¡áá±á¬áºááŒá¬áá«áááºá
- áá»áœááºááœááºážáá»ááºáá áºáá¯ááŒá±á¬áá·áº á áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááœáẠááŒá¿áá¬ááŸááá²á·ááŒá®áž ááŸá±á¬ááºááœááºážáá¯ááºáá¯á¶ážáá¯ááºáááºážááᯠáá±á¬ááºážááœááºá áœá¬ ááááºáá±á¬ááºááá¯ááºáá²á·áá«á
- SRE á¡ááºáá»ááºáá®áá¬áá»á¬ážááẠáá¯á¶ááŒá¯á¶áá±ážá¡ááŒá±á¬ááºážááŒáá»ááºááŒá±á¬áá·áº áááºážááá¯á·á á¡áá±á¬ááºá¡áá¬ážáá»á¬áž áááºáááºážáá¯ááºááœá¬ážáá±á¬ááŒá±á¬áá·áº á¡áá»áá¯á·áá±á¬á áá áºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááœáá·áºáá¯á¶ážááŸá¯á¶ážááœá¬ážáá²á·áááºá
- áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážááẠCloudflare áá±áááá¯ááŒááºáááºážááœá¬ážáá±á¬ááŒá±á¬áá·áº Cloudflare áááºááŸáºáá¯áẠááá¯á·ááá¯áẠAPI ááá¯á· áááºáá±á¬ááºááœáá·áºáááŸááá«á
ááŒá®ážáá²á·áá²á· ááŒá¬áááá±ážáá±á·ááááºážá áá¬ááœá± ááŒá±á¬ááºážáá²ááœá¬ážáá²á
ááááŠážá áœá¬á áá»áœááºá¯ááºááá¯á·ááẠWAF á¡ááœáẠáá¯ááºáá±ááŸá¯áá»á¬ážááá¯ááºáᬠáá¯ááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¯á¶ážááááºááá·áºááá¯ááºááŒá®áž á¡á±á¬ááºáá«á¡ááá¯ááºáž áá¯ááºáá±á¬ááºáá±áá«áááºá
- áá»áœááºá¯ááºááá¯á·áááºááŸá¬ážááá¯ááºáá±á¬ CPU á¡ááœááºá¡áá»áœá¶á¡áá¯á¶ážááŒá¯ááŸá¯áá¬ááœááºáá±ážááᯠáá»áœááºá¯ááºááá¯á· ááŒááºáááºááááºáááºáá±áá«áááºá (á¡áááºááá·áº)
- á¡ááœááºá¡áá»áœá¶áá±á¬ááºááŒááºááŸáá·áºááŒááºážáá¡ááŒá¬ážááŒá áºááá¯ááºáá»á±ááŸááá±á¬ááá á¹á áá»á¬ážááá¯ááŸá¬ááœá±áááºááŸáá·áºááŒááºáááºááẠWAF á¡ááœááºá á®áá¶ááá·áºááœá²áá¬ážáá±á¬á ááºážáá»ááºážáá»á¬ážááŸá 3868 á ááºážáá»ááºážá¡á¬ážáá¯á¶ážááᯠááá¯ááºááá¯ááºá á áºáá±ážááŒááºážá (á¡áááºááŒá¯áá»áẠááŒá®ážáá«ááŒá®)
- á ááºážáááºááŸá¯á¡á á¯á¶ááœáẠá ááºážáá»ááºážá¡á¬ážáá¯á¶ážá¡ááœáẠá áœááºážáá±á¬ááºááẠáááá¯ááá¯ááºááᯠáá»áœááºá¯ááºááá¯á· áá«áááºáááºá (áá°ááá¯áẠáá áááº)
- áá¯á¶ááŸáẠexpression engine ááá¯á·ááŒá±á¬ááºážááŒááºážá
re2 ááá¯á·ááá¯ááºáá¶ááŒá±áž - ááŸá áºáá¯á áá¯á¶ážááẠruntime á¡á¬ááá¶áá»ááºáá±ážáááºá (áá°ááá¯áẠáá)á - áá»áœááºá¯ááºááá¯á·ááẠCloudflare ááŸá á¡ááŒá¬ážáá±á¬áá±á¬á·ááºáá²ááºáá»á¬ážáá²á·ááá¯á· á ááºážáá»ááºážáá»á¬ážááᯠá¡ááá·áºáá»á¬ážá¡ááá¯ááºá¡áá¯á¶ážááŒá¯ááẠSOP ááᯠââááŒááºáááºáá±ážáá¬ážáá±áá±á¬áºáááºáž ááá¯ááºááá¯ááºááŸá¯áá»á¬ážá áááºáá±ááŒá®ááŒá áºáá«á á¡áá±ážáá±á«áºááá¹áá¬áá¯á¶ážááá¯ááºáá¬á¡áá¯á¶ážáá»ááŸá¯ááᯠáá¯ááºáá±á¬ááºááá¯ááºá áœááºážááŸááááºá
- áá»áœááºá¯ááºááá¯á·ááẠCloudflare áááºááŸáºáá¯ááºááŸáá·áº API ááᯠCloudflare áá±áá០á¡ááŒááºáááºááŸá¬ážááá¯ááºááá·áº á áœááºážáááºááᯠáá®ááœááºáá±áá«áááºá
- á
á¬áá»ááºááŸá¬ á¡ááºááááºáá»á¬ážááᯠá¡ááá¯á¡áá»á±á¬áẠáá¯ááºáá±á¬ááºááŒááºážá
Cloudflare á¡ááŒá±á¡áá± .
ááœááºáá²á·áá±á¬ááŸá
áºá¡áááºážáááºááá»áœááºáá±á¬áºáá±ážáá²á·áá±á¬ Lua WAF ááŸáá»áœááºá¯ááºááá¯á·áááºáá±ááŸááºáá±ážááœá¬áá±áá«áááºá WAF ááá¯á·ááŒá±á¬ááºážáá±áááºá
áá±á¬ááºáá»ááº
á€áá¡á±á¬ááºááŒááºááŸá¯ááẠáá»áœááºá¯ááºááá¯á·ááŸáá·áº áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážááᯠáá¯áá¹áááŒá áºá á±áááºá áá»áœááºá¯ááºááá¯á·ááẠá¡ááŒá±á¡áá±ááᯠááŒá¯ááŒááºááẠáá»ááºááŒááºá áœá¬ áá¯ááºáá±á¬ááºáá²á·ááŒá®áž ááá¯á¡áá« áá»ááºáá»á á±ááá·áº áá¯ááºáááºážá ááºáá»á¬ážááœáẠáá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ááŒá®áž áááºážááá¬á¡áá áºááá¯á· ááŒá±á¬ááºážááœáŸá±á·ááá·áºá¡áá« á¡áá¬áááºááœáẠáá¯á¶ááŸááºáá±á¬áºááŒááŸá¯áá»á¬ážááŒáá·áº ááŒá áºáá¬ááá¯ááºááá·áº ááŒá¿áá¬áá»á¬ážááᯠáá¬ááœááºáááºá¡ááœáẠááá¯ááá¯áááºááŸáá¯ááºážá áœá¬ áá°ážáá±á¬áºáá±á¬ááºááœááºáá»ááºááŸááááºá
á€ááŒááºáá±á¬ááºááŸá¯á¡ááœáẠáá»áœááºá¯ááºááá¯á· á¡ááœááºááŸááºááœá¶á·ááŒá®áž áá»áœááºá¯ááºááá¯á·ááá±á¬ááºáááºáá»á¬ážááᯠáá±á¬ááºážáááºáá«áááºá á€ááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážááẠáá±á¬ááºáá áºááŒááẠáááºáááŒá áºá á±ááẠáá±áá»á¬á á±áááºáᯠáá»áœááºá¯ááºááá¯á· áá»áŸá±á¬áºááá·áºáá«áááºá
áá»áŸá±á¬ááºááœáŸá¬á áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááᯠáá±á¬ááºááŒááºáá¯ááºááŒááºážá
á¡áá¯á¶ážá¡ááŸá¯ááºážááᯠáá¬ážáááºáááº-
(?:(?:"|'|]|}||d
(?:nan|infinity|true|false|null|undefined|symbol|math)|`|-
|+)+[)]*;?((?:s|-|~|!|{}||||+)*.*(?:.*=.*)))
CPU á¡áááºážá¡ááŒá
áºá¡á¬ážáá¯á¶ážááᯠá
á¬ážáá¯á¶ážááŒá®ážá áá¯á¶ááŸáẠáá¯á¶ááŸááºáá±á¬áºááŒáá»ááºá¡ááºáá»áẠá¡áá¯ááºáá¯ááºáá¯á¶á¡ááŒá±á¬ááºáž á¡áááºážááẠáááá¬ážááẠááá¯á¡ááºáá«áááºá áá®áá±áá¬ááŸá¬ ááŒá¿áá¬á áá¯á¶á
á¶áá«á .*(?:.*=.*)
. (?:
ááŸáá·áºáááºááá¯ááºáá±á¬ )
áááºážáá°ááŒááºážáááŒá¯áá±á¬á¡á¯ááºá
ᯠ(ááá¯ááá¯áááºááŸá¬á ááœááºážá¡ááœááºážááŸáá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠáá
áºáá¯áááºážáá±á¬áºááŒáá»ááºá¡ááŒá
Ạá¡á¯ááºá
á¯ááœá²á·áá¬ážáááº)á
CPU á¡ááœááºá¡áá»áœá¶áá¯á¶ážá
áœá²ááŸá¯á¡ááŒá±á¡áá±ááœááºá á€áá¯á¶á
á¶ááᯠáá±á¬áºááŒááá¯ááºáááºá .*.*=.*
. á€áá¯á¶á
á¶ááœááºá áá¯á¶á
á¶ááẠáááá¯á¡ááºáá² ááŸá¯ááºááœá±ážááŸáááºá ááá¯á·áá±á¬áº ááá¯áá¡áá±ážááŒá®ážáááºááŸá¬á áááºááœá±á·ááá¹áá¬ááœááºá WAF á
ááºážáá»ááºážáá»á¬ážááœáẠááŸá¯ááºááœá±ážáá±á¬á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážáá²á·ááá¯á·) á¡ááºáá»ááºááᯠáá±á¬ááºá¡ááá¯ááºážáá
áºááá¯ááºážááŸáá·áº ááá¯ááºáááºáá±á¬ á¡ááá¯ááºážáá
áºááá¯ááºážááŸáá·áº ááá¯ááºáá®á
á±ááẠáá±á¬ááºážááá¯ááá·áº á¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááẠáá±ážá¥áááºááŒá
áºá
á±ááá·áº áá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºááŒááºážááᯠááŒá
áºá
á±ááá¯ááºáááºá á¡á²áá«ááŒá±á¬áá·áºáá«á
áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºáž .
ááá¯ááá¯áá¬á áá¬ááºáá±á¬ááºáá
áºáá¯áá²á· ááá¯ááºáá®ááá¯á·ááá¯áááºá .*
- áá¯á ááá¯á·ááá¯áẠááá¯á·áááºááá¯áá±á¬ á¡áá¹ááá¬áá»á¬ážááᯠ"áá±á¬áááŒá®ážá
áœá¬" ááŸáá·áº ááŸááºááŒáá·áºáá«á ááá¯ááá¯áááºááŸá¬á á¡áá»á¬ážáá¯á¶áž áá¬ááºáá±á¬ááºáá»á¬ážááᯠáááºážáá°ááŒááºážá .*.*=.*
á¡áááá¹áá«ááºááŸá¬ áá¯á ááá¯á·ááá¯áẠááá¯á·áááºááá¯áá±á¬ áá¬ááºáá±á¬ááºáá»á¬ážááᯠááŸááºáá«á ááá¯á·áá±á¬áẠáá¯á ááá¯á·ááá¯áẠááá¯á·áááºááá¯áá±á¬ á¡áá¹ááá¬áá»á¬ážááᯠááŸááºáá«á á
á¬áá¬áž = á
á¬áá¯á¶ážááᯠááŸá¬áá«á áá¯á ááá¯á·ááá¯áẠáá±á¬ááºááẠá
á¬áá¯á¶ážáá»á¬ážááᯠááŸááºáá«á
á
á¬áá±ážááœá²ááá¯ááºážááᯠá
ááá¯ááºáá¡á±á¬áẠx=x
. á
áá¬ážáááºáá²á· ááá¯ááºáá®áááºá .*.*=.*. .*.*
áá°áá®áá±á¬ áááºá¹áá±áááẠáááááŸáá·áº áááá¯ááºáá®áá® x
(á¡ááœá²á·ááœá±áá²á áá
áºáá¯áá«á .*
ááá¯ááºáá® x
ááŸáá·áº áá¯ááá - áá¯á á¡áá¹ááá¬)á .*
after = áá±á¬ááºáá¯á¶ážááœá²áá»á¬áž x
.
á€ááŸáá¯ááºážááŸááºááŸá¯ááœáẠá¡ááá·áº áá ááá·áº ááá¯á¡ááºáááºá áááá¡á¯ááºá
ᯠ.*
в .*.*=.*
áá±á¬áááŒá®ážá
áœá¬ ááŒá¯áá°ááŒá®áž á
á¬ááŒá±á¬ááºážáá
áºáá¯áá¯á¶ážááᯠááá¯ááºáááºáááºá x=x
. á¡ááºáá»ááºááẠáá±á¬ááºá¡á¯ááºá
á¯ááá¯á· ááœáŸá±á·áááºá .*
. áá»áœááºá¯ááºááá¯á·ááœáẠáááºáá°áá»ááẠáá¬ááºáá±á¬ááºáá»á¬ážáááŸááá±á¬á·áá±á¬ááŒá±á¬áá·áº áá¯áááá¡á¯ááºá
ᯠ.*
á¡áá¹ááᬠáá¯áááŸáá·áº ááá¯ááºáá®ááẠ(áááºážááᯠááœáá·áºááŒá¯áááº)á ááá¯á·áá±á¬áẠá¡ááºáá»ááºááẠááá¯ááºážáá¯ááºáá®ááá¯á· ááœá±á·áá»á¬ážááœá¬ážáááºá =
. áááºá¹áá±ááá»á¬ážáááŸááá±á¬á·áá« (áááá¡á¯ááºá
ᯠ.*
á¡áá¯á¶ážá¡ááŸá¯ááºážáá
áºáá¯áá¯á¶ážááᯠáá¯á¶ážáááºá x=x
) ááŸáá¯ááºážááŸááºááŸá¯ áááŸááá«á
ááá¯á·áá±á¬áẠáá¯á¶ááŸáẠexpression engine ááẠá¡á
ááá¯á· ááŒááºááœá¬ážáááºá áá°ááẠáááá¡á¯ááºá
á¯ááá¯á· áááºááœá¬ážáááºá .*
ááŸáá¯ááºážááŸááºáá«á Ñ x=
(á¡á
á¬áž x=x
) ááŒá®ážá០áá¯áááá¡á¯ááºá
á¯ááᯠáááºáááºá .*
. áá¯áááá¡á¯ááºá
ᯠ.*
áá¯áááááŸáá·áºááŸáá¯ááºážááŸááºáááºá x
ááŒá®ážáá±á¬á· áá«ááá¯á·ááŸá¬ á
á¬áá¯á¶ážááá»ááºáá±á¬á·áá°ážá á¡ááºáá»ááºááŒááºáááºáá¬áá²á·á¡áá« =
в .*.*=.*
áá¬ááŸáá¡áá¯ááºáá¯ááºáá°ážá ááŒá®ážáá±á¬á· áá°á áá±á¬ááºááŒááºááŸáá·áºáááºá
áá®áá
áºáá«áá±á¬á· á¡ááœá²á·áá±á«á·á .*
ááá¯ááºááá¯ááºáá±áá±ážáááºá x=
áá«áá±ááá·áº áá¯áááá¡á¯ááºá
ᯠ.*
áááŸááá±á¬á·áá« x
ááŸáá·áº á¡áá¹ááᬠáá¯áá á¡ááºáá»ááºááẠáááááá¬ááºáá±á¬ááºááᯠááŸá¬ááœá±ááẠááŒáá¯ážá
á¬ážáá±áááºá =
áá¯á¶á
á¶áá²ááŸá¬ .*.*=.*
áá«áá±ááá·áº ááœááºááá¬áá°áž (áá±á¬ááºáá¯á¶ážáá±á¬á· áááá¡á¯ááºá
á¯á á¡á²áá«ááᯠááááºážááá¯ááºáá¬ážááŒá®ážáá¬áž .*
) ááŒá®ážáá±á¬á· áá°á áá±á¬ááºááŒááºááŸáá·áºáááºá
áá®áá
áºáá« áááá¡á¯ááºá
ᯠ.*
ááá x ááá¯áᬠáá°áááºá áá«áá±ááá·áº áá¯áááá¡á¯ááºá
ᯠ.*
âáá±á¬áááŒá®ážâ áááºážáááºá =x
. áá¬ááœá±áááºááŒá
áºááá²ááá¯áᬠááá·áºááŸááºážááŒá®ážááŒá®áá¬ážá á¡ááºáá»ááºááẠááááááŸáá·áºááá¯ááºáá®ááẠááŒáá¯ážá
á¬ážáááºá =
, áá»ááºááœááºááŒá®áž áá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºááŸá¯ ááŒá¯áá¯ááºáááºá
áááá¥á®ážáá¯á¶ážá¡ááœá²á·áá
áºááœá²á· .*
ááááá
áºáá¯ááŸáá·áº ááá¯ááºáá®áá±áá±ážáááºá x
. áá¯ááá .*
áá°áá¯á¶áᬠ=
. áá¯ááºáá«áááºá á¡ááºáá»ááºá áááááá²á· áááŸááºááá¯ááºáá«áá°ážá =
áá¬ááŒá
áºááá¯á·áá²ááá¯áá±á¬á· áá¯áááá¡á¯ááºá
á¯á áá«ááá¯áá¯ááºáá¬ážááŒá®ážáá¬áž .*
. ááŒá®ážáá±á¬á· áá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºáááºá ááŒá®ážáá±á¬á· á
á¬áá¯á¶ážáá¯á¶ážáá¯á¶ážáá²á· ááá¯ááºáá®á¡á±á¬áẠááŒáá¯ážá
á¬ážáá±áá«áááºá
ááá¯á·ááŒá±á¬áá·áº áááá¡á¯ááºá
ᯠ.*
ááááá
áºáá¯áᬠááá¯ááºáá®áááºá x
, áá¯ááá .*
- á¡áá¹ááᬠáá¯áááŒáá·áº á¡ááºáá»ááºááẠáá±á¬ááºáá¯á¶ážááœáẠá
á¬áá¬ážááŸáá·áº ááá¯ááºáá®áááºá =
áá¯ááºáá±á¬áºááŒá±á¬ááá¯ Ñ =
áááºážáááºáá¬á
á®áááºá áá±á¬ááºáá
áºáá¯á áá±á¬ááºáá¯á¶ážá¡á¯ááºá
ᯠ.*
áá±á¬ááºáá¯á¶ážáá
áºáá¯ááŸáá·áºááŸáá¯ááºážááŸááºáááºá x
.
áá ááŸááºážáᬠx=x
. Perl á¡áá¯á¶ážááŒá¯ááŒááºážá¡ááŒá±á¬ááºáž áá®áá®ááá¯á¡ááá¯ááᯠááŒáá·áºáá«á
áá«á á¡áá¯ááºá¡áá»á¬ážááŒá®ážáá¯ááºáá±ááŒá®ááá¯áá±ááá·áº á¡á
á¬ážáá»á¬ážááẠáááºááá¯áá¯ááºááá²á x=x
ááŸáááẠx=xx
? á¡á²áá«á á¡ááá·áº áá áá«á áá®ááá¯áá²á· x=xxx
? 45. áááºáá¶áá±ážááẠlinear ááá¯ááºáá±á ááááºááá± ááŸáá¯ááºážááŸááºááŒáá«áááºá x=x
ááá¯á· x=xxxxxxxxxxxxxxxxxxxx
(20 x
пПÑле =
) ááŒá®ážááẠ20 x ááŸáááẠ=
á¡ááºáá»ááºááẠá¡ááá·áº 555 ááŒáá·áº ááá¯ááºáá®ááŸá¯ááᯠá¡ááŒá®ážáááºáá«áááºá (áá«á·ááẠáá«ááá¯á·ááŸá¯á¶ážááẠx=
ááŸáá·áº string áááºááá¯ážááŸááºážá
áœá¬ 20 áá« á ááºáááºá x
á¡ááºáá»ááºááẠááá¯ááºáá®ááŸá¯áááŸááᯠáá¬ážáááºááẠáááá ááŸááºážááŒá¬áá«áááºá
á€áá®áá®ááá¯ááẠááŸáá¯ááºážááŸá¥áºááẠáá±á¬ááºááŒá±á¬ááºážááŒááºááŸá¯á¡á¬ážáá¯á¶ážááᯠááŒááá¬ážáááºá x=xxxxxxxxxxxxxxxxxxxx
:
ááŒá¿áá¬ááŸá¬ ááŒáá¯ážá¡ááœááºá¡á
á¬áž ááá¯ážáá¬áááºááŸáá·áºá¡áá»áŸ ááá¯ááºáááºááá·áºá¡áá»áááºááẠá¡ááœááºááá¯ááºážáá¬ážáá®á
áœá¬ ááŒá®ážááœá¬ážáá¬áááºá ááá¯á·áá±á¬áº áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠá¡áááºážááẠááŒá¯ááŒááºáá«á ááá¯ááá¯ážááœá¬ážááá¯ááºáááºá ááá¯ááŒáá«á
áá¯á· .*.*=.*
; (ááá¯ááá¯áááºááŸá¬á áá¯á¶á
á¶áá¡áá¯á¶ážááœáẠáááá semicolon áá
áºáá¯ááŸááááº)á á¥ááᬠ- á
áá¬ážáááºáá
áºáá¯áá²á· ááá¯ááºááá¯ááºááᬠfoo=bar;
.
á€áá±áá¬ááœáẠáá±á¬ááºááŒá±á¬ááºážááŒááºááŸáá·áºááŒááºážááẠáááá·áºáá±ážá¥áááºááŒá
áºáááá·áºáááºá ááŸáá¯ááºážááŸááºááá¯á· x=x
90 ááá¯ááºáá² 23 ááŸááºážáá°ááááá·áºáááºá ááŒá®ážáá±á¬á· á¡á²áá®á¡áá±á¡ááœááºáᬠáá»ááºááŒááºá
áœá¬ááŒá®ážááœá¬ážáá¬áá«áááºá ááŸáá¯ááºážááŸááºááẠx=
ááŸááºá· 20 x
á¡ááá·áº á
áá
á ááá¯á¡ááºáá«áááºá á€ááœááºááá¬ážá áááºááá¯ážáááºááá¯ážáá»á¬ážááá¯ááŒáá·áºáá«á Y
ááááºááá¬ážááŸáá·áºááŸáá¯ááºážááŸááºá
áááºá
áááºáááºá
á¬ážáá«á ááá¯ááºáá®áá±á¬ áá¡á±á¬ááºááŒááºáá±á¬ á¡ááá·áº 5353 á¡á¬ážáá¯á¶ážááᯠá
á
áºáá±ážááŒáá·áºáá«á x=xxxxxxxxxxxxxxxxxxxx
О .*.*=.*;
áá±á¬áááŒá®ážááŒááºážááẠáá»ááºážááááŒááºážááᯠá¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá±á¬ááºááŒá±á¬ááºážááŒááºááŒááºážá á¡ááá¯ááºážá¡áá¬ááᯠááááºážáá»á¯ááºááá¯ááºáááºá áá°áááºážá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠááŒá±á¬ááºážááá¯ááºáááºá .*?.*?=.*?
, ááŸáá¯ááºážááŸáẠx=x
á¡ááá·áº 11 (23) ááá¯ááºáá«á á¡ááá¯á·á¡ááŒá
Ạx=xxxxxxxxxxxxxxxxxxxx
... á¡á¬ážáá¯á¶ážááŒá±á¬áá·áºáá«á ?
пПÑле .*
áááºááá»áŸá±á¬ááºáá® á¡áááºážáá¯á¶áž á
á¬áá¯á¶ážá¡áá±á¡ááœááºááŸáá·áº ááá¯ááºáá®ááẠá¡ááºáá»ááºá¡á¬áž ááŒá±á¬áá¬ážáááºá
ááá¯á·áá±á¬áº áá»ááºážááááŒá±áá¯á¶ááœá²ááŒááºážáá»á¬ážááẠáá±á¬ááºááŒá±á¬ááºážááŒááºááŒááºážááŒá¿áá¬ááᯠáá¯á¶ážááááŒá±ááŸááºážááá¯ááºáá«á áááºáá±áž á¥ááá¬ááᯠá¡á
á¬ážááá¯ážáááºá .*.*=.*;
á¡áá±á«áº .*?.*?=.*?;
á á
á®áááºáá»áááºááẠáá°áá®áá±áááºááŒá
áºáááºá x=x
á¡ááá·áº 555 ááá¯á¡ááºáá±áá«áá±ážáááºá x=
ááŸááºá· 20 x
- 5353 á
áá¯ááºáá±á¬ááºááá¯ááºááá·áº áá áºáá¯áááºážáá±á¬á¡áᬠ(ááá¯ááá¯áááá»ááŸá¯á¡ááœáẠáá¯á¶á á¶ááᯠáá¯á¶ážáá¯á¶ážáá»á¬ážáá»á¬áž ááŒááºáááºáá±ážáá¬ážááŒááºážááŸááá«áž) ááẠáááºážá backtracking ááá¹ááá¬ážááŒáá·áº áá¯á¶ááŸáẠexpression engine ááᯠá áœáá·áºááœáŸááºáááºááŒá áºáááºá áá«á áá¬ááá·áº áááºááá¹ááááºá¡áááºážáááºá¡ááœááºáž áá»áœááºáá±á¬áºááá¯á· áá¯ááºáááá·áºá¡áá¬áá«á
Kent Thompson á áá±á¬ááºážáá«ážáá
áºáá¯ááºáá±ážáá²á· áááá áá¯ááŸá
áºááááºážá áá®ááŒá¿áá¬áá²á· á¡ááŒá±ááᯠáááá¬áá²á·áá«áááºá
áááá¯ááááºáá±ážáááºážáá»á¬áž
áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºááŸá¬ááœá±ááŸá¯ á¡ááºááá¯áá®áááº
Ken Thompson
Bell Telephone Laboratories, Inc.á Murray Hill, New JerseyáááºážááẠá á¬áá¬ážáá«áá±á¬ áá¬ááºáá±á¬ááºáá»á¬ážá áááºáááºááŸááºááŸááºá á¬áááºážáá»á¬ážááᯠááŸá¬ááœá±ááẠáááºážáááºážááᯠáá±á¬áºááŒááŒá®áž á€áááºážáááºážááᯠcompiler áá¯á¶á á¶ááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááŒááºážá¡ááŒá±á¬ááºáž ááœá±ážááœá±ážáááºá compiler ááẠáá¯á¶ááŸáẠexpression ááᯠsource code á¡ááŒá áºáá°áᬠIBM 7094 program ááᯠobject code á¡ááŒá Ạáá¯ááºáá¯ááºáááºá á¡áá¬ááá¹áá¯áááá¯ááááºááẠááŸá¬ááœá±ááŸá¯á á¬áá¬ážáá¯á¶á á¶ááŒáá·áº ááá·áºááœááºážááŸá¯ááᯠááá°ááŒá®áž áá±ážáá¬ážááá·áº áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºáá áºáá¯ááŸáá·áº á á¬áá¬ážáá áºááŒá±á¬ááºážááᯠááá¯ááºáá®ááá·áºá¡áá»áááºááá¯ááºáž á¡áá»ááºááŒááŸá¯áá áºáᯠáá¯ááºááœáŸááºáááºá áá±á¬ááºážáá«ážááẠá¥ááá¬áá»á¬ážá ááŒá¿áá¬áá»á¬ážááŸáá·áº ááŒá±ááŸááºážáááºážáá»á¬ážááᯠáá±ážáááºá
algorithm ááá¯
áá áºá áááºáá áºááá¯ááºáž á¡á±á¬ááºááŒááºáá±á¬ááŸá¬ááœá±ááŸá¯áá áºáᯠááááºáááœááºáá¬áá«á ááááºááŸá¬ááœá±ááŸá¯ á¡ááºáááá¯áá®áááºáá»á¬ážá áá±á¬ááºááŒá±á¬ááºážááŒááºááŒááºážááᯠááŒá áºáá±á«áºá á±áá«áááºáá á¯á ááºážááŸá¯áá¯ááºááœááºá algorithm ááẠáááºá¹áá±ááá»á¬ážááŒáá·áº á¡áá¯ááºááá¯ááºáá«á áááºážááẠcompiled code á¡ááœáẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááŒááºáááºážáá«áááºá áá¯ááºáá±á¬ááºáá»ááºááẠá¡ááœááºááŒááºáááºááẠ- áááºááŸáá á¬áááºážáááááºáá¯á¶ážááá¯á· áá±áá¬ááá¯ááŒááºáááºážááŒá®ážáá±á¬ááºá áá¯á¶ááŸááºáá±á¬áºááŒáá»ááºááŸá ááŒá áºááá¯ááºááá·áºáááºááá¯ááºá á¬áá¯á¶ážá¡á¬ážáá¯á¶ážááᯠá¡ááá¯á¡áá»á±á¬ááºááŸá¬ááœá±áááºá
á á¯á ááºážááŸá¯ááŸáá·áº ááŸá¬ááœá±ááŸá¯ á¡ááºáááá¯áá®áááºááᯠáááºá ááºááŸá¬ááœá±ááŸá¯á¡ááŒá Ạá¡áá»áááºáá»áŸáá±ááŒááºáž á á¬áá¬ážáááºážááŒááºááŸá¯ááœáẠááá·áºááœááºážáá¬ážáááºá áá¯ááºáá«áááºá á€áá²á·ááá¯á·áá±á¬ááŸá¬ááœá±ááŸá¯áá¯ááºáááºážá ááºááá áºáá¯áááºážáá±á¬áá»áŸá±á¬ááºááœáŸá¬ááŸáá·áºáá±ážáááºá á¥ááá¬á¡á¬ážááŒáá·áºá ဠalgorithm á áá°ááœá²áá áºáá¯ááᯠassembler ááŸá ááá¬ážáá áºáá¯ááœáẠááŸá¬ááœá±ááŸá¯áá áºáá¯á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áááºá
á á¬áááºáá°ááẠáá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááŸáá·áº IBM 7094 ááœááºááŒá°áᬠáááá¯ááááºážáááºážáá¬áá¬á áá¬ážááá¯á·ááŸáá·áº áááºážááŸá®ážáááºáᯠáá°ááá«áááºáCompiler
compiler ááœáẠáá»ááºážááŒáá¯ááºáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááá·áºáá¯á¶ážááá·áº áá«áááºáááºá áááá¡ááá·áºááŸá¬ á¡áá¬ážá¡ááá¯á á áºáá¯ááºááŒááºážááŒá áºááŒá®áž áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááᯠá ááºážáá»ááºáá®áá® ááŸááºáááºá áœá¬ ááŒááºáááºážááá¯ááºá á±ááẠááœáá·áºááŒá¯áá±ážáá«áááºá á€á¡ááá·áºááẠáá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá»á¬ážááŸáá·áº ááá¯ááºáá®ááẠ"·" á¡á±á¬áºááá±áá¬ááá¯áááºáž ááá·áºááœááºážáá«áááºá áá¯áááá¡ááá·áºááœááºá áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠpostfix áá¯á¶á á¶ááá¯á·ááŒá±á¬ááºážáááºá ááááá¡ááá·áºááœááºá á¡áá¬ááá¹áá¯áá¯ááºááá¯áááºáá®ážáááºá áááá¡ááá·áº á ááá·áºááẠáááá¬áááºááŸá¬ážááŒá®áž áááºážááá¯á·á¡áá±á«áºááœáẠáá»áœááºá¯ááºááá¯á·áá±áááºááá¯ááºáá«á
Thompson á áá±á¬ááºážáá«ážááẠá¡áá¯á¶ážá¡ááŒááºáááŸááá±á¬ ááá·áºáááºááŒááºáááºá ááºáá»á¬ážá¡ááŒá±á¬ááºáž áááŒá±á¬áá±á¬áºáááºáž áááºážááẠlinear time algorithm ááᯠáá±á¬ááºážá áœá¬ááŸááºážááŒááŒá®áž IBM 60 á¡ááœáẠassembly language code ááá¯áá¯ááºáá±ážááá·áº ALGOL-7094 áááá¯ááááºááᯠáááºááŒáá¬ážáááºá á¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááŸá¬ áááºáá²áá±á¬áºáááºáž á¡áá¯ááºáá®áá¬ááŸá¬ á¡ááœááºááá¯ážááŸááºážáá«áááºá
áááºááŸáááŸá¬ááœá±áá±ážáááºážááŒá±á¬ááºážá á¡áááºáá áºáá¯ááŸáá·áº á¡ááœááºááŸá áºáá¯áá«ááŸááá±á¬ â áááºá¹áá±áááŒáá·áº áááºážááᯠááá¯ááºá á¬ážááŒá¯áááºá
áá¯á¶ 1 ááẠáá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážá¥ááá¬áá áºáá¯á¡ááœááºááŒá±á¬ááºážáá±á¬á¡áá« ááááá á¯á ááºážááŸá¯á¡ááá·áºá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠááŒáááºá á¥ááá¬ááŸá áááá á¬áá¯á¶ážáá¯á¶ážáá¯á¶ážááẠaá bá c ááŒá áºááŒá®áž áá áºáá¯á á®ááẠstack entry S[i] ááŸáá·áº NNODE á¡ááœááºáá áºáᯠáááºáá®ážáá±ážáááºááá áºáá¯áááºážáá±á¬ stack entry ááœááºáááŸááá¬áá±á¬áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááá¯áá¯ááºáá¯ááºáááºááŸáááŒá®ážáá¬ážáá¯ááºááá¯á· NNODE (áá¯á¶ 5 ááá¯ááŒáá·áºáá«)
á€áááºááŸá¬ áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááŸáá·áºáá°áááºá .*.*=.*
Thompson áá²á· áá±á¬ááºážáá«ážáá²á áá¯á¶ááœá±á¡ááá¯ááºáž á
áááºáá°ážááŒáá·áºáááºááá¯áááºá
áá¯á¶ááœááºá 0 ááœáẠ0 ááŸá
áááºáá±á¬ááŒááºáááºáá«ážáá¯ááŸáááŒá®ážááŒááºááẠ3 á 1 ááŸáá·áº 2 ááŸá
áááºáá±á¬á
ááºáááºáž 3 áá¯ááŸááááºá á€áá¶ááá¬áá¯á¶ážáá¯áááºáá¯á¶ážáá»áá¯ážááŸáá·áºáááºááá¯ááºáááºá .*
áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá
áºáá¯á á¡á
ááºáá»á¬ážáá«áá±á¬ áá²á¥áá¯á¶ á áá¯á¶ážááẠáááºá¹áá±ááá
áºáá¯ááŸáá·áº ááá¯ááºáá®áááºá áá²á¥áá¯á¶ ááá¯ááºážáá¯áẠ=
ááááá¡áá¹ááá¬ááŸáá·áºááá¯ááºáá®áááºá =
. ááŒááºááẠ4 ááẠáá±á¬ááºáá¯á¶ážááŒá
áºáááºá áá»áœááºá¯ááºááá¯á·áá±á¬ááºááŸááá«áá áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááŸáá·áº ááá¯ááºáá®áá«áááºá
áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááŸáá·áºááá¯ááºáá®ááŸá¯á¡ááœáẠááá¯áá²á·ááá¯á·áá±á¬ááŒááºáááºáá¯á¶ááŒááºážááᯠáááºáá²á·ááá¯á·á¡áá¯á¶ážááŒá¯ááá¯ááºáááºááᯠááŒáá·áºááŸá¯ááẠ.*.*=.*
ááá¯ááºáá®áá±á¬ á
á¬ááŒá±á¬ááºážááᯠááŒáá·áºáá«áááºá x=x
. áá¯á¶ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºáž áááá¯ááááºááẠááŒááºááẠ0 á០á
áááºáááºá áá
á€á¡ááºáááá¯áá®áááºá¡áá¯ááºáá¯ááºáááºá¡ááœááºá ááŒááºáááºá ááºááẠááŒááºáááºá¡áá»á¬ážá¡ááŒá¬ážááœáẠáááŒáá¯ááºáááºáááºážááŸáááá«áááºá á¡áá¯á¶ážá¡ááŒááºáááŸááá±á¬ á¡ááá·áºá¡áááºáááŸá á ááºááẠááŒá áºááá¯ááºáá»á±ááŸááá±á¬ á¡ááœááºáá°ážááŒá±á¬ááºážááŸá¯á¡á¬ážáá¯á¶ážááᯠáá áºááŒáá¯ááºááẠááŒá¯áá¯ááºáá±ážáááá·áºáááºá
Input data ááá¯áááºáááºá¡áá»áááºáááá±ážáá®á áááºážááẠFig ááœááºááŒáá¬ážááá·áºá¡ááá¯ááºážáááá¡ááŒá±á¡áá± (1 ááŸáá·áº 2) ááŸá áºáá¯áá¯á¶ážááá¯á·áá±á¬ááºááœá¬ážáááºá áá
áá¯á¶ááœááºá 2 ááẠáááááŒáá·áºáá±á¬á¡áá« áá¬ááŒá
áºááœá¬ážáááºááᯠááŒáááºá x
в x=x
. x
ááŒááºááẠ1 á០ááŒááºááẠ1 ááá¯á· ááŒááºááœá¬ážááẠááááºáááºážá¡ááŸááºááá¯á· ááŒá±áá¯á¶ááœá²ááá¯ááºáááºá ááá¯á·ááá¯áẠx
ááŒááºááẠ2 á០ááŒááºááẠ2 ááá¯á· ááŒááºááœá¬ážááẠá¡á±á¬ááºáá«á¡áá»ááºááᯠááŒá±áá¯á¶ááœá²ááá¯ááºáá«áááºá
ááá¯ááºááá¯ááºááŒá®ážá០ááá x
в x=x
áá»áœááºá¯ááºááá¯á·ááẠááŒááºááẠ1 ááŸáá·áº 2 ááœááºááŸááá±áá²ááŒá
áºáááºá áá»áœááºá¯ááºááá¯á·ááẠááááá¡áá¹ááá¬áá
áºáá¯ááá¯á¡ááºáá±á¬ááŒá±á¬áá·áº ááŒááºááẠ3 ááá¯á·ááá¯áẠ4 ááá¯á·ááá±á¬ááºááŸáááá¯ááºáá«á =
.
ááá¯á·áá±á¬áẠalgorithm ááẠá
ááºážá
á¬ážáááºá =
в x=x
. áááºážáááá¯ááºáá® x áá²á·ááá¯á·á áááºážááᯠstate 1 á០state 1 ááá¯á· ááááºáááºáž loop ááŸá
áºáá¯á០ááŸá
áºáá¯áá¯á¶áž ááá¯á·ááá¯áẠstate 2 á០state 2 ááá¯á· ááŸááºááá¯ááºáá±á¬áºáááºáž algorithm ááẠááááááŸáá·áº ááá¯ááºáá®ááá¯ááºááẠ=
ááŒááºááẠ2 á០ááŒááºááẠ3 (ááŸáá·áº áá»ááºáá»ááºáž 4) ááá¯á· ááœáŸá±á·áá«á á€áááºááᯠáá¯á¶ááœááºááŒáá¬ážáááºá áá
ááá¯á·áá±á¬áẠalgorithm ááẠáá±á¬ááºáá¯á¶ážáá
áºáá¯ááá¯á· áááºááœá¬ážáá«áááºá x
в x=x
. ááŒááºááẠ1 ááŸáá·áº 2 ááŸáá°áá®áá±á¬á¡áá°ážá¡ááŒá±á¬ááºážáá»á¬ážáááºááŒááºááẠ1 ááŸáá·áº 2 ááá¯á·ááŒááºááŒá
áºááá¯ááºáááºá ááŒááºááẠ3 á០x
áá¬áááºááŸá á¡ááŸááºááŸáá·áº ááá¯ááºáá®ááŒá®áž state 3 ááá¯á· ááŒááºááœá¬ážááá¯ááºáááºá
áá®á¡ááá·áºááŸá¬ áá¬ááá¯ááºáᬠá¡áá®ážáá®áž x=x
á
ááºážá
á¬ážáá¬ážááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠstate 4 ááá¯á·áá±á¬ááºááŸáááŒá®ážááááºážáá áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážááẠááá¯á
á¬ááŒá±á¬ááºážááŸáá·áºááá¯ááºáá®áá«áááºá á¡áá¹ááá¬áá
áºáá¯á
á®ááᯠáá
áºááŒáááºáááºážáá¯ááºáá±á¬ááºááŒá®ážááŒá
áºáá±á¬ááŒá±á¬áá·áº ဠalgorithm ááẠinput string áá¡ááŸááºááœáẠlinear ááŒá
áºáááºá áá±á¬ááºááŒá±á¬ááºážááŒááºááŒááºážáááºážáááŸáá
á¡ááŒá±á¡áá± 4 ááá¯á·áá±á¬ááºááŸáááŒá®ážáá±á¬áẠ(algorithm ááŸáá·áºááá¯ááºáá®áá±á¬á¡áá« x=
) áá¯á¶ááŸááºá¡áá¯á¶ážá¡ááŸá¯ááºážáá
áºáá¯áá¯á¶ážááẠáá°áá®ááŒá®áž algorithm ááẠáááºážááá¯áá¯á¶ážááá
ááºážá
á¬ážáá² áááºááá·áºááœá¬ážááá¯ááºáááºá x
.
ဠalgorithm ááẠinput string á á¡ááœááºá¡á á¬ážáá±á«áºáá°áááºá linearly áá°áááºáá«áááºá
source: www.habr.com