nginx 1.31.5 ๋ฉ์ธ ๋ธ๋์น๊ฐ ์ถ์๋์์ผ๋ฉฐ, ์๋ก์ด ๊ธฐ๋ฅ ๊ฐ๋ฐ์ด ๊ณ์ ์งํ๋๊ณ ์์ต๋๋ค. ๋์์ ์์ ์ ์ธ 1.30.x ๋ธ๋์น๋ ์ง์๋๋ฉฐ, ์ฌ๊ฐํ ์ค๋ฅ ๋ฐ ์ทจ์ฝ์ ์ ๊ฑฐ์ ๊ด๋ จ๋ ๋ณ๊ฒฝ ์ฌํญ๋ง ์ ์ฉ๋ฉ๋๋ค. ํฅํ ์์ ์ ์ธ 1.31 ๋ธ๋์น๋ 1.32.x ๋ฉ์ธ ๋ธ๋์น๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑ๋ ์์ ์ ๋๋ค. ํ๋ก์ ํธ ์ฝ๋๋ C ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ ๋ฆด๋ฆฌ์ค์์:
- ์ธ๋ถ ๊ด๋ฆฌ๋ฅผ ์ํ REST API๊ฐ ์ถ๊ฐ๋์ด ์๊ฒฉ์ผ๋ก ์ค์ ์ ์๋ก ๊ณ ์น๊ฑฐ๋, ์ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋, ์์ปค ํ๋ก์ธ์ค ์ํ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค. API ์ง์์ ๋น๋ ์ต์ "--with-control-api"์ ๋ช ๋ น์ค ์ธ์ "-l"์ ์ฌ์ฉํ์ฌ ํ์ฑํํ ์ ์์ต๋๋ค. API๋ฅผ Unix ์์ผ์ ๋ฐ์ธ๋ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค(nginx -l unix:/path/to/sock). Curl ์ ํธ๋ฆฌํฐ๋ฅผ ์ฌ์ฉํ์ฌ API์ ์ ๊ทผํ ์ ์์ต๋๋ค.
- Location ์ง์๋ฌธ์ ๊ฐ์ผ๋ก "$" ๊ธฐํธ๋ก ์์ํ๋ ๋ณ์๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์ต๋๋ค. ๋ฐํ์์ ๊ณ์ฐ๋๋ ๋ณ์ ๊ฐ์ Location ๋ธ๋ก ์ง์ ์กฐ๊ฑด์ ๊ฒฐ์ ํฉ๋๋ค. ์ด๋ฌํ Location ๋ธ๋ก์ ๋ค๋ฅธ Location ๋ธ๋ก ๋ด์์ ์ฌ์ฉ๋ ์๋ ์๊ณ , ๊ทธ ์์ฒด๋ก ์ค์ฒฉ๋ Location ๋ธ๋ก์ ํฌํจํ ์๋ ์์ต๋๋ค. ์: map $arg_foo $pred { bar 1; qux 1; } location $pred { root html; }
- ngx_http_json_module ๋ชจ๋์ด ๊ตฌํ๋์ด JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ํ์ฑํ๊ณ , JSON์์ ๊ฐ๋ณ ํ๋๋ฅผ ์ถ์ถํ๊ณ , ์ด๋ฌํ ํ๋๋ฅผ Nginx ์ค์ ์ ๋ณ์๋ก ์ฌ์ฉํ ์ ์๊ฒ ๋์์ต๋๋ค.
- "client_body_early_read" ์ง์๋ฌธ์ ์ถ๊ฐํ์ต๋๋ค. ์ด ์ง์๋ฌธ์ ํ์ฑํํ๋ฉด ํค๋๋ฅผ ์์ ํ ์งํ ์์ฒญ ๋ณธ๋ฌธ์ ์ฝ๊ฒ ๋ฉ๋๋ค.
Nginx HTTP ์๋ฒ์ JavaScript ์ธํฐํ๋ฆฌํฐ๋ฅผ ํตํฉํ๋ ๋ชจ๋์ธ Njs 1.0.1์ด ์ถ์๋์์ต๋๋ค. Njs๋ฅผ ์ฌ์ฉํ๋ฉด ์ค์ ํ์ผ์์ JavaScript ์คํฌ๋ฆฝํธ๋ฅผ ํ์ฉํ์ฌ Nginx์ ๊ธฐ๋ฅ์ ํ์ฅํ ์ ์์ต๋๋ค. ์คํฌ๋ฆฝํธ๋ฅผ ํตํด ๊ณ ๊ธ ์์ฒญ ์ฒ๋ฆฌ ๋ก์ง์ ์ ์ํ๊ฑฐ๋, ์ค์ ์ ์์ฑํ๊ฑฐ๋, ์๋ต์ ๋์ ์ผ๋ก ์์ฑํ๊ฑฐ๋, ์์ฒญ/์๋ต์ ์์ ํ๊ฑฐ๋, ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์คํ ์ ์ ์ํ๊ฒ ์์ฑํ ์ ์์ต๋๋ค. ์ด ํ๋ก์ ํธ ์ฝ๋๋ C ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ BSD ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
njs 1.0.1 ๋ฆด๋ฆฌ์ค์์๋ ์ธ ๊ฐ์ง ์ทจ์ฝ์ ์ด ์์ ๋์์ต๋๋ค. xml.exclusiveC14n ํจ์์ ๋ฒํผ ์ค๋ฒํ๋ก(CVE-2026-78689), js_access๋ฅผ ํตํ ์ ๊ทผ ์ ํ ์ฐํ(CVE-2026-18329), ๊ทธ๋ฆฌ๊ณ ngx.fetch ์กฐ์์ผ๋ก ์ธํ ์์ปค ํ๋ก์ธ์ค ์ถฉ๋(CVE-2026-78222)์
๋๋ค.
์ถ์ฒ : opennet.ru
