๊ตฌ๊ธ์ด ํฌ๋กฌ 95 ์น ๋ธ๋ผ์ฐ์ ์ ์ถ์๋ฅผ ๊ณต๊ฐํจ๊ณผ ๋์์ ํฌ๋กฌ์ ๊ธฐ๋ฐ์ด ๋๋ ๋ฌด๋ฃ ํฌ๋ก๋ฏธ์ ํ๋ก์ ํธ์ ์์ ์ ์ธ ์ถ์๊ฐ ๊ฐ๋ฅํ๋ค. Chrome ๋ธ๋ผ์ฐ์ ๋ Google ๋ก๊ณ ์ฌ์ฉ, ์ถฉ๋ ๋ฐ์ ์ ์๋ฆผ ์ ์ก ์์คํ , ๋ณดํธ๋ ๋น๋์ค ์ฝํ ์ธ (DRM) ์ฌ์ ๋ชจ๋, ์๋ ์ ๋ฐ์ดํธ ์์คํ ๋ฐ RLZ ๋งค๊ฐ๋ณ์ ๊ฒ์ ์ ์ ์ก์ผ๋ก ๊ตฌ๋ณ๋ฉ๋๋ค. ์๋ก์ด 4์ฃผ ๊ฐ๋ฐ ์ฃผ๊ธฐ์ ๋ฐ๋ผ Chrome 96์ ๋ค์ ๋ฆด๋ฆฌ์ค๋ 16์ 8์ผ๋ก ์์ ๋์ด ์์ต๋๋ค. ์ ๋ฐ์ดํธ์ ๋ ๋ง์ ์๊ฐ์ด ํ์ํ ์ฌ์ฉ์๋ฅผ ์ํด ๋ณ๋์ Extended Stable ๋ถ๊ธฐ๊ฐ ์ ์ง๋๊ณ 94์ฃผ ๋์ Chrome XNUMX์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ ๋ฐ์ดํธ๊ฐ ์์ฑ๋์์ต๋๋ค.
Chrome 95์ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ:
- Linux, Windows, macOS ๋ฐ ChromeOS ์ฌ์ฉ์์ ๊ฒฝ์ฐ ์ฝํ
์ธ ์ค๋ฅธ์ชฝ์ ํ์๋๊ณ ์ฃผ์ ํ์์ค์ ํน์ ์์ด์ฝ์ ํด๋ฆญํ์ฌ ํ์ฑํ๋๋ ์๋ก์ด ์ฌ์ด๋๋ฐ๊ฐ ์ ๊ณต๋ฉ๋๋ค. ํจ๋์๋ ์ฑ
๊ฐํผ์ ์ฝ๊ธฐ ๋ชฉ๋ก์ด ํฌํจ๋ ์์ฝ์ด ํ์๋ฉ๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ์ ์ฉ๋์ง ์์ต๋๋ค. "chrome://flags/#side-panel" ์ค์ ์ ์ฌ์ฉํ์ฌ ํ์ฑํํ ์ ์์ต๋๋ค.
- ์์ ์๋ ์์ฑ ์์คํ ์์ ๋์ค์ ์ฌ์ฉํ ์ ์๋๋ก ์น ์์์ ์ ๋ ฅํ ์ฃผ์๋ฅผ ์ ์ฅํ ์ ์๋ ๊ถํ์ ๋ํ ๋ช ์์ ์์ฒญ์ ์ถ๋ ฅ์ ๊ตฌํํ์ต๋๋ค. ์์์ ์ฃผ์๊ฐ ์๋์ง ํ์ธํ ๋ ์ฃผ์ ์ ์ฅ, ์ด์ ์ ์ ์ฅ๋ ์ฃผ์ ํธ์ง, ์ ๋ฐ์ดํธ ๋๋ ์ ์ฅ ๊ฑฐ๋ถ๋ฅผ ํ์ฉํ๋ ๋ํ ์์๊ฐ ์ฌ์ฉ์์๊ฒ ํ์๋ฉ๋๋ค.
- FTP ํ๋กํ ์ฝ์ ์ง์ํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ์ ๊ฑฐํ์ต๋๋ค. Chrome 88์์๋ FTP ์ง์์ด ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋์ด ์์์ง๋ง ํ์ฑํ๋ฅผ ์ํ ํ๋๊ทธ๊ฐ ๋จ์ ์์์ต๋๋ค.
- ํธ์คํธ ์ด๋ฆ์ด IPv4 ์ฃผ์์ ์ผ์นํ์ง ์๋ ์ซ์๋ก ๋๋๋ URL์ ๋ํ ์ง์์ด ์ค๋จ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด URL "http://127.1/", "http://foo.127.1/" ๋ฐ "http://127.0.0.0.1"์ ์ด์ ์ ํจํ์ง ์์ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋ฉ๋๋ค.
- WebAssembly์ ๊ฒฝ์ฐ ํน์ ์ฝ๋๋ฅผ ์คํํ๋ ๋์ ์์ธ๊ฐ ๋ฐ์ํ๋ ๊ฒฝ์ฐ ์คํ์ ํฌ์ฐฉํ ์ ์๋ ์์ธ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์์ฑํ๋ ๊ธฐ๋ฅ์ด ๊ตฌํ๋ฉ๋๋ค. WebAssembly ๋ชจ๋์ ์๋ ค์ง ์์ธ ํฌ์ฐฉ๊ณผ ๊ฐ์ ธ์จ ํจ์๋ฅผ ํธ์ถํ๋ ๊ณผ์ ์์ ์์ธ๋ฅผ ๋ชจ๋ ์ง์ํฉ๋๋ค. ์์ธ๋ฅผ ํฌ์ฐฉํ๋ ค๋ฉด WebAssembly ๋ชจ๋์ Emscripten๊ณผ ๊ฐ์ ์์ธ ์ธ์ ์ปดํ์ผ๋ฌ๋ก ๋น๋ํด์ผ ํฉ๋๋ค.
WebAssembly ์์ค์ ์์ธ ์ฒ๋ฆฌ๋ JavaScript์ ์์ธ ์ฒ๋ฆฌ์ ๋นํด ์์ฑ๋ ์ฝ๋์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด JavaScript์ ์ํ ์์ธ ์ฒ๋ฆฌ๋ก Binaryen ์ตํฐ๋ง์ด์ ๋ฅผ ๊ตฌ์ถํ๋ฉด ์ฝ๋๊ฐ 43% ์ฆ๊ฐํ๊ณ WebAssembly๋ฅผ ์ฌ์ฉํ๋ฉด 9% ์ฆ๊ฐํฉ๋๋ค. ๋ํ "-O3" ์ต์ ํ ๋ชจ๋๋ฅผ ์ฌ์ฉํ ๋ WebAssembly์ ์ํ ์์ธ ์ฒ๋ฆฌ๊ฐ ์๋ ์ฝ๋๋ ์์ธ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์๋ ์ฝ๋์ ์ค์ง์ ์ผ๋ก ์ฑ๋ฅ ์ฐจ์ด๊ฐ ์์ง๋ง JavaScript๋ฅผ ์ฌ์ฉํ ์์ธ ์ฒ๋ฆฌ๋ ์คํ ์๋๊ฐ 30% ๋๋ ค์ง๋๋ค.
- ํ๋์ ์ฌ์ดํธ๋ฅผ ์ฒ๋ฆฌํ ๋ ์๋ก ๋ค๋ฅธ ๋๋ฉ์ธ(cross-origin) ๊ฐ์ WebAssembly ๋ชจ๋์ ๊ณต์ ํ๋ ๊ฒ์ ๊ธ์ง๋์ด ์์ต๋๋ค.
- ๋ช ๊ฐ์ง ์๋ก์ด API๊ฐ Origin Trials ๋ชจ๋์ ์ถ๊ฐ๋์์ต๋๋ค(๋ณ๋์ ํ์ฑํ๊ฐ ํ์ํ ์คํ ๊ธฐ๋ฅ). Origin ํ๊ฐํ์ localhost ๋๋ 127.0.0.1์์ ๋ค์ด๋ก๋ํ ์ ํ๋ฆฌ์ผ์ด์
์์ ๋๋ ํน์ ์ฌ์ดํธ์ ๋ํด ์ ํ๋ ์๊ฐ ๋์ ์ ํจํ ํน์ ํ ํฐ์ ๋ฑ๋ก ๋ฐ ์์ ํ ํ ์ง์ ๋ API๋ก ์์
ํ ์ ์๋ ๊ธฐ๋ฅ์ ์๋ฏธํฉ๋๋ค.
- User-Agent HTTP ํค๋ ๋ฐ JavaScript ๋งค๊ฐ๋ณ์ navigator.userAgent, navigator.appVersion ๋ฐ navigator.platform์์ ์ ๋ณด ํธ๋ฆฌ๋ฐ์ ํ์ฑํํ์ต๋๋ค. ํค๋์๋ ๋ธ๋ผ์ฐ์ ์ด๋ฆ, ๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๋ฒ์ , ํ๋ซํผ ๋ฐ ์ฅ์น ์ ํ(ํด๋ํฐ, PC, ํ๋ธ๋ฆฟ)์ ๋ํ ์ ๋ณด๋ง ํฌํจ๋ฉ๋๋ค. ์ ํํ ๋ฒ์ ๋ฐ ํ์ฅ๋ ํ๋ซํผ ๋ฐ์ดํฐ์ ๊ฐ์ ์ถ๊ฐ ๋ฐ์ดํฐ์ ๊ฒฝ์ฐ ์ฌ์ฉ์ ์์ด์ ํธ ํด๋ผ์ด์ธํธ ํํธ API๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์๋น์ ์์คํ ์ ๋ํ ์ฌ์ฉ์ ์์ด์ ํธ ์ญ๊ฐ์ ์์์ ๋ฐ๋ ํ์ ๊ฒ์๋ Chrome 102์ ์ถ์๋ก ์์ ๋์ด ์์ต๋๋ค.
- ํ์ผ ์์คํ ์ก์ธ์ค API์ ๋ํ ์ก์ธ์ค ํธ๋ค(์ก์ธ์ค ํธ๋ค)์ ์์ฑํ ์ ์๋ ๊ฐ๋ฅ์ฑ์ด ์ ์๋์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฌ์ฉ์ ์ฅ์น์ ํ์ผ ๋ฐ ๋๋ ํฐ๋ฆฌ์ ์ง์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ธ ์ ์์ต๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ํ์ผ ์์คํ ์ ์ก์ธ์คํ๋ ๋ฐฉ์์ ์ค์ด๊ธฐ ์ํด Google์ ํ์ผ ์์คํ ์ก์ธ์ค ๋ฐ Storage Foundation API๋ฅผ ๋ณํฉํ ๊ณํ์ ๋๋ค. ์ด๋ฌํ ํฉ๋ณ์ ์ํ ์ค๋น ๋จ๊ณ๋ก ์ก์ธ์ค ๋์คํฌ๋ฆฝํฐ์ ๋ํ ์ง์์ด ์ ์๋๋๋ฐ, ์ด๋ ํ์ผ ๋์คํฌ๋ฆฝํฐ ๊ธฐ๋ฐ์ ์์ ๋ฐฉ์์ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ํ ์ฐ๊ธฐ ์ ๊ธ ์ค์ , ์ฐ๊ธฐ ๋ฐ ์ฝ๊ธฐ๋ฅผ ์ํ ๋ณ๋์ ์คํธ๋ฆผ ์์ฑ๊ณผ ๊ฐ์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ผ๋ก ๋ณด์ํ๋ ๊ฒ์ ๋๋ค. ๋๊ธฐ ๋ชจ๋์์ ์์ ์์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ์ฉ.
- ๋ณด์ ๊ฒฐ์ ํ์ธ API๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์ ํ๋์์ผ๋ฉฐ ๊ฒฐ์ ์์ ์ ๋ํ ์ถ๊ฐ ํ์ธ์ ์ ๊ณตํ๋ ์๋ก์ด '๊ฒฐ์ ' ํ์ฅ ๊ธฐ๋ฅ์ ๊ตฌํํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์๋์์ต๋๋ค. ์ํ๊ณผ ๊ฐ์ ์ ๋ขฐ ๋น์ฌ์๋ '๋ณด์ ๊ฒฐ์ ํ์ธ' ๊ฒฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ์ฌ ๊ฒฐ์ ์์ฒญ API๋ฅผ ํตํด ์ถ๊ฐ ๋ณด์ ๊ฒฐ์ ํ์ธ์ ์ํด ํ๋งค์๊ฐ ์์ฒญํ ์ ์๋ PublicKeyCredential์ ์์ฑํ ์ ์์ต๋๋ค.
- PerformanceObserver ์์ฑ์๋ฅผ ํตํด ์ค์ ๋ ์ฝ๋ฐฑ์๋ ์ด์ ์ ๋ฌ๋ dropEntriesCount ์์ฑ์ด ์์ผ๋ฏ๋ก ์ ๊ณต๋ ๋ฒํผ์ ๋ง์ง ์์ ์ผ๋ง๋ ๋ง์ ์ฌ์ดํธ ์ฑ๋ฅ ๋ฉํธ๋ฆญ์ด ์ญ์ ๋์๋์ง ์ดํดํ ์ ์์ต๋๋ค.
- ๋ธ๋ผ์ฐ์ ์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋ฅผ ํธ์ถํ์ฌ ํ๋ฉด์ ์์ ํฝ์ ์์์ ๊ฒฐ์ ํ ์ ์๋ EyeDropper API๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๊ตฌํ๋ ๊ทธ๋ํฝ ํธ์ง๊ธฐ์์ ์ฌ์ฉํ ์ ์์ต๋๋ค. const eyeDropper = new EyeDropper(); const result = await eyeDropper.open(); // ๊ฒฐ๊ณผ = {sRGBHex: '#160731'}
- self.reportError() ํจ์๊ฐ ์ถ๊ฐ๋์ด ์คํฌ๋ฆฝํธ๊ฐ ์ค๋ฅ๋ฅผ ์ฝ์์ ์ถ๋ ฅํ์ฌ ํฌ์ฐฉ๋์ง ์์ ์์ธ ๋ฐ์์ ์๋ฎฌ๋ ์ดํธํ ์ ์์ต๋๋ค.
- URL์ด ํน์ ํจํด๊ณผ ์ผ์นํ๋์ง ํ์ธํ๊ธฐ ์ํด URLPattern API๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์๋ฅผ ๋ค์ด ๋งํฌ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์์ฒญ์ ์๋น์ค ์์ปค์ ํธ๋ค๋ฌ๋ก ๋ฆฌ๋๋ ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. const p = new URLPattern({ ํ๋กํ ์ฝ: 'https', ํธ์คํธ ์ด๋ฆ: 'example.com', ๊ฒฝ๋ก ์ด๋ฆ: '/:folder/*/:fileName.jpg', });
- Intl.DisplayNames API๊ฐ ํ์ฅ๋์ด ์ธ์ด, ๊ตญ๊ฐ, ํตํ, ๋ ์ง ์์ ๋ฑ์ ํ์งํ๋ ์ด๋ฆ์ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. ์ ๋ฒ์ ์๋ "calendar" ๋ฐ "dateTimeField"๋ผ๋ ์๋ก์ด ์ ํ์ ์ด๋ฆ์ด ์ถ๊ฐ๋์ด ์ด๋ฅผ ํตํด ๋ฌ๋ ฅ์ ํ์งํ๋ ์ด๋ฆ๊ณผ ๋ ์ง ๋ฐ ์๊ฐ ํ๋(์: ์ ์ด๋ฆ)๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค. "์ธ์ด" ์ ํ์ ๋ํ ์ธ์ด ๋ฐฉ์ธ ์ฌ์ฉ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Intl.DateTimeFormat API์์ timeZoneName ๋งค๊ฐ๋ณ์์ ์ ๊ฐ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค. ์งง์ ์๊ฐ๋ ์๋ณ์(์: "PT", "ET")๋ฅผ ํ์ํ๋ "shortGeneric", "longGeneric" - ๊ธด ์๋ณ์(" Pacific Time", "Mountain Time"), "shortOffset" - GMT("GMT+5")๋ฅผ ๊ธฐ์ค์ผ๋ก ์งง์ ์คํ์ ์ ์ฌ์ฉํ๊ณ "longOffset"์ GMT("GMT+0500")๋ฅผ ๊ธฐ์ค์ผ๋ก ๊ธด ์คํ์ ์ ์ฌ์ฉํฉ๋๋ค.
- Web Authentication API๋ก ๋์ฒด๋์ด์ผ ํ๋ U2F(Cryptotoken) API๊ฐ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ต๋๋ค. U2F API๋ Chrome 98 ๋ฆด๋ฆฌ์ค์์ ๊ธฐ๋ณธ์ ์ผ๋ก ๋นํ์ฑํ๋๋ฉฐ Chrome 104์์๋ ์์ ํ ์ ๊ฑฐ๋ฉ๋๋ค.
- ์น ๊ฐ๋ฐ์๋ฅผ ์ํ ๋๊ตฌ๊ฐ ๊ฐ์ ๋์์ต๋๋ค. ์คํ์ผ ํจ๋์ ์ฌ์ฉํ๋ฉด ํฌ๊ธฐ ๊ด๋ จ CSS ์์ฑ(๋์ด, ํจ๋ฉ ๋ฑ)์ ์ฝ๊ฒ ์กฐ์ ํ ์ ์์ต๋๋ค. ๋ฌธ์ ํญ์ ๊ฐ๋ณ ๋ฌธ์ ๋ฅผ ์จ๊ธธ ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์น ์ฝ์, ์์ค ๋ฐ ์์ฑ ํจ๋์ ์์ฑ ํ์๊ฐ ๊ฐ์ ๋์์ต๋๋ค(์ด์ ์ฌ์ฉ์ ์ ์ ์์ฑ์ด ๊ตต๊ฒ ํ์๋๊ณ ๋ชฉ๋ก ๋งจ ์์ ํ์๋จ).
ํ์ ๋ฐ ๋ฒ๊ทธ ์์ ์ธ์๋ ์ ๋ฒ์ ์์๋ 19๊ฐ์ ์ทจ์ฝ์ ์ด ์์ ๋์์ต๋๋ค. ๋ง์ ์ทจ์ฝ์ ์ด ์๋ ํ
์คํธ ๋๊ตฌ์ธ AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer ๋ฐ AFL์ ๊ฒฐ๊ณผ๋ก ํ์ธ๋์์ต๋๋ค. ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๋ณดํธ ์์ค์ ์ฐํํ๊ณ ์๋๋ฐ์ค ํ๊ฒฝ ์ธ๋ถ์ ์์คํ
์์ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ์ฌ๊ฐํ ๋ฌธ์ ๋ ํ์ธ๋์ง ์์์ต๋๋ค. ํ์ฌ ๋ฆด๋ฆฌ์ค์ ๋ํ ์ทจ์ฝ์ ํฌ์๊ธ ํ๋ก๊ทธ๋จ์ ์ผํ์ผ๋ก Google์ $16 ์๋น์ 74๊ฐ ํฌ์๊ธ($20000 ํฌ์ 10000๊ฐ, $7500 ํฌ์ 6000๊ฐ, $5000 ํฌ์ 3000๊ฐ, $2000 ํฌ์ 1000๊ฐ, $5 ํฌ์ XNUMX๊ฐ, $XNUMX ํฌ์ XNUMX๊ฐ)์ ์ง๊ธํ์ต๋๋ค. $XNUMX). XNUMX๊ฐ์ ๋ณด์ ๊ธ์ก์ ์์ง ๊ฒฐ์ ๋์ง ์์์ต๋๋ค.
์ถ์ฒ : opennet.ru