PCRE2 10.45

๋ฐ˜๋…„ ์ด์ƒ์˜ ๊ฐœ๋ฐœ ๋์— PERL ํ˜ธํ™˜ ์ •๊ทœํ‘œํ˜„์‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ 10.45๊ฐ€ ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PCRE2, C๋กœ ์ž‘์„ฑ๋˜๊ณ  BSD ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ๋ฆด๋ฆฌ์Šค๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ๋ฒ„๊ทธ ์ˆ˜์ •, ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์— ๋ฏธ๋ฏธํ•œ ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ๋น„๊ต์  ๋Œ€๊ทœ๋ชจ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „ 10.45๋Š” PCRE ๋ฐ PCRE2 ํ”„๋กœ์ ํŠธ์˜ ์ œ์ž‘์ž์ด์ž ์œ ์ง€ ๊ด€๋ฆฌ์ž์ธ ํ•„๋ฆฝ ํ—ค์ด์ฆ์—๊ฒŒ ๊ฐ์‚ฌ๋ฅผ ํ‘œํ•˜๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ ์œ ์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ์ค€๋น„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค.

๋ณ€๊ฒฝ ์‚ฌํ•ญ ๋ชฉ๋ก :

  • JIT ์ปดํŒŒ์ผ ํ”„๋กœ์ ํŠธ ์Šฌ์ง“ ์ด์ œ Git ํ•˜์œ„ ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
  • Unicode ๋ฐ์ดํ„ฐ๋ฅผ ๋ฒ„์ „์œผ๋กœ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. 16.
  • ์œ ๋‹ˆ์ฝ”๋“œ Ll, Lt, Lu ์†์„ฑ์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ๋งคํ•‘์ด Perl๊ณผ ์ผ์น˜ํ•˜๋„๋ก ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” /p{Ll}/i ํŒจํ„ด์€ ์†Œ๋ฌธ์ž์™€๋งŒ ์ผ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ์ผ์น˜๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์—๋„). ์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์€ [:lower:]์™€ ๊ฐ™์€ POSIX ํด๋ž˜์Šค์˜ ๋Œ€์†Œ๋ฌธ์ž๋ฅผ ๊ตฌ๋ถ„ํ•˜์ง€ ์•Š๋Š” ์ผ์น˜์—๋„ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.
  • ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ธ scan_substring์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์บก์ฒ˜๋ง ๋ธ”๋ก์˜ ๋‚ด์šฉ์„ ํ•˜์œ„ ํŒจํ„ด๊ณผ ์ผ์น˜์‹œํ‚ค๋Š” ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์–ด์„ค์…˜์ž…๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, ํ‘œํ˜„์‹ b(w++)(*scan_substring:(1).+rh)๋Š” ๋งจ ์ฒ˜์Œ์— ์—†๋Š” ํฌ๊ท€ํ•œ ์˜์–ด ๋ฌธ์ž ์‹œํ€€์Šค "rh"๋ฅผ ํฌํ•จํ•˜๋Š” ๋‹จ์–ด๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.
  • ํ˜ธํ™˜๋˜๋Š” ๋ฌธ์ž ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์œ ์—์Šค์—์Šค#18 (์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœ ํ‘œํ˜„์‹) ์ƒˆ๋กœ์šด PCRE2_ALT_EXTENDED_CLASS ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๋ฌธ์ž ํด๋ž˜์Šค์—์„œ ๋ฉ”ํƒ€๋ฌธ์ž๋กœ [ ์™€ ์—ฐ์‚ฐ์ž &&, โ€”, ~~๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ž ํด๋ž˜์Šค์˜ ๋บ„์…ˆ๊ณผ ๊ต์ง‘ํ•ฉ์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, ํƒœ๊ตญ์–ด๋‚˜ ๊ทธ๋ฆฌ์Šค์–ด ๋ฌธ์ž(ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ์ž๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์ œ์™ธ)์™€ ์ผ์น˜ํ•˜๋ ค๋ฉด [p{L}&&[p{Thai}||p{Greek}]]๋ผ๋Š” ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • (?[โ€ฆ]) ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ Perl ์Šคํƒ€์ผ ํ™•์žฅ ๋ฌธ์ž ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ž ํด๋ž˜์Šค์˜ ๋นผ๊ธฐ์™€ ๊ต์ง‘ํ•ฉ์„ ํ‘œํ˜„ํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์œ ์—์Šค์—์Šค#18 (์œ ๋‹ˆ์ฝ”๋“œ ์ •๊ทœ ํ‘œํ˜„์‹).
    ์˜ˆ๋ฅผ ๋“ค์–ด, ํƒœ๊ตญ์–ด ๋˜๋Š” ๊ทธ๋ฆฌ์Šค์–ด ๋ฌธ์ž(ํ•ด๋‹น ์Šคํฌ๋ฆฝํŠธ์˜ ๋ฌธ์ž๋‚˜ ๋‹ค๋ฅธ ๋ฌธ์ž๋Š” ์ œ์™ธ)์™€ ์ผ์น˜ํ•˜๋ ค๋ฉด (?[p{L} & (p{Thai} + p{Greek})]) ํ‘œํ˜„์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์บ๋ฆญํ„ฐ ํด๋ž˜์Šค ๋งค์นญ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์ƒ๋‹นํžˆ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋œ ๋ฌธ์ž ํด๋ž˜์Šค๋Š” ์ด์ œ ๋”์šฑ ์••์ถ•๋˜์—ˆ์œผ๋ฉฐ, ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์ด์ง„ ๊ฒ€์ƒ‰์„ ์‚ฌ์šฉํ•˜์—ฌ ํฌ๊ฑฐ๋‚˜ ๋ณต์žกํ•œ ๋ฌธ์ž ์ง‘ํ•ฉ์— ๋Œ€ํ•œ ์ผ์น˜๋ฅผ ๋” ๋น ๋ฅด๊ฒŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ตœ์ ํ™”๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ธ pcre2_set_optimize()๊ฐ€ API์— ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • pcre2_substitute() ํ•จ์ˆ˜๊ฐ€ ๋งŽ์ด ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๊ธฐํƒ€ ๊ฐœ์„  ์‚ฌํ•ญ ๋ฐ ๋ฒ„๊ทธ ์ˆ˜์ •.

์ถœ์ฒ˜ : linux.org.ru

DDoS ๋ณดํ˜ธ, VPS VDS ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ์•ˆ์ •์ ์ธ ํ˜ธ์ŠคํŒ… ๊ตฌ์ž… ๐Ÿ”ฅ DDoS ๊ณต๊ฒฉ ๋ฐฉ์ง€ ๊ธฐ๋Šฅ์ด ํƒ‘์žฌ๋œ ์•ˆ์ •์ ์ธ ์›น์‚ฌ์ดํŠธ ํ˜ธ์ŠคํŒ…, VPS ๋ฐ VDS ์„œ๋ฒ„๋ฅผ ๊ตฌ๋งคํ•˜์„ธ์š” | ProHoster