HTTP/HTTPS ํธ๋ํฝ ๋ถ์ ๋๊ตฌ์ธ mitmproxy์ ์์ฑ์๋ Python ํจํค์ง์ PyPI(Python Package Index) ๋๋ ํฐ๋ฆฌ์ ์์ ์ ํ๋ก์ ํธ ํฌํฌ๊ฐ ๋ํ๋๋ ๊ฒ์ ์ฃผ๋ชฉํ์ต๋๋ค. ํฌํฌ๋ ๋ถ์ฃผ์ํ ์ฌ์ฉ์๊ฐ ํจํค์ง๋ฅผ ๊ธฐ๋ณธ ํ๋ก์ ํธ์ ์ ๋ฒ์ (ํ์ ์ค์ฟผํ )์ผ๋ก ์ธ์ํ๊ณ ์ํ ๊ฒ์ด๋ผ๋ ๊ธฐ๋์ ํจ๊ป ์ ์ฌํ ์ด๋ฆ mitmproxy2 ๋ฐ ์กด์ฌํ์ง ์๋ ๋ฒ์ 8.0.1(ํ์ฌ ๋ฆด๋ฆฌ์ค mitmproxy 7.0.4)๋ก ๋ฐฐํฌ๋์์ต๋๋ค. ์ ๋ฒ์ ์ ์ฌ์ฉํด ๋ณด์ธ์.
๊ตฌ์ฑ ๋ฉด์์ mitmproxy2๋ ์ ์ฑ ๊ธฐ๋ฅ ๊ตฌํ๊ณผ ๊ด๋ จ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ธํ๊ณ mitmproxy์ ์ ์ฌํ์ต๋๋ค. ๋ณ๊ฒฝ ์ฌํญ์ iframe ๋ด๋ถ์ ์ฝํ ์ธ ์ฒ๋ฆฌ๋ฅผ ๊ธ์งํ๋ HTTP ํค๋ "X-Frame-Options: DENY" ์ค์ ์ค์ง, XSRF ๊ณต๊ฒฉ์ ๋ํ ๋ณดํธ ๋นํ์ฑํ ๋ฐ "Access-Control-Allow-Origin: *" ํค๋ ์ค์ ์ผ๋ก ๊ตฌ์ฑ๋์์ต๋๋ค. "์ก์ธ์ค ์ ์ด-ํ์ฉ ํค๋: *" ๋ฐ "์ก์ธ์ค ์ ์ด-ํ์ฉ ๋ฐฉ๋ฒ: POST, GET, DELETE, OPTIONS".
์ด๋ฌํ ๋ณ๊ฒฝ ์ฌํญ์ผ๋ก ์ธํด ์น ์ธํฐํ์ด์ค๋ฅผ ํตํด mitmproxy๋ฅผ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ HTTP API์ ๋ํ ์ก์ธ์ค ์ ํ์ด ์ ๊ฑฐ๋์ด ๋์ผํ ๋ก์ปฌ ๋คํธ์ํฌ์ ์๋ ๋ชจ๋ ๊ณต๊ฒฉ์๊ฐ HTTP ์์ฒญ์ ๋ณด๋ด ์ฌ์ฉ์ ์์คํ ์์ ์ฝ๋ ์คํ์ ๊ตฌ์ฑํ ์ ์๊ฒ ๋์์ต๋๋ค.
๋๋ ํ ๋ฆฌ ๊ด๋ฆฌ์๋ ๋ณ๊ฒฝ ์ฌํญ์ด ์
์์ ์ธ ๊ฒ์ผ๋ก ํด์๋ ์ ์์ผ๋ฉฐ ํจํค์ง ์์ฒด๊ฐ ๊ธฐ๋ณธ ํ๋ก์ ํธ๋ฅผ ๊ฐ์ฅํ์ฌ ๋ค๋ฅธ ์ ํ์ ํ๋ณดํ๋ ค๋ ์๋๋ก ํด์๋ ์ ์๋ค๋ ๋ฐ ๋์ํ์ต๋๋ค(ํจํค์ง ์ค๋ช
์๋ ์ด๊ฒ์ด mitmproxy์ ์ ๋ฒ์ ์ด๋ฉฐ ํฌํฌ). ์นดํ๋ก๊ทธ์์ ํจํค์ง๋ฅผ ์ ๊ฑฐํ ํ ๋ค์๋ ์ ํจํค์ง์ธ mitmproxy-iframe์ด PyPI์ ๊ฒ์๋์์ผ๋ฉฐ ํด๋น ์ค๋ช
๋ ๊ณต์ ํจํค์ง์ ์์ ํ ์ผ์นํ์ต๋๋ค. mitmproxy-iframe ํจํค์ง๋ ์ด์ PyPI ๋๋ ํฐ๋ฆฌ์์ ์ ๊ฑฐ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru