์ํคํผ๋์ / ์ฌ์ดํธ๊ฐ ์์ฒญ ์์กฐ /ย https://en.wikipedia.org/wiki/Cross-site_request_forgery
NHN Cloud Meetup! / ๋ธ๋ผ์ฐ์ ์ธ์์ ๋ฑ ํฐ์ง๋ ๊ฐ๋ฐ์๋ค์ ์ํ HTTP์ฟ ํค์ ํฐ์บฃ ์ฟ ํค ํ๋ก์ธ์ ์ด์ผ๊ธฐ /ย https://meetup.toast.com/posts/209
์ฟ ํค์ ์ธ์ ๊ฐ๋ /ย https://interconnection.tistory.com/74
1์ฃผ์ฐจ์คํฐ๋
์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด์ ์ ์ค์ฌ์ผ๋ก ์ค๋ช ํด์ฃผ์ธ์.
๊ผฌ๋ฆฌ
์ฟ ํค๋ก ๊ฐ๋ฅํ๋ฐ๋ ์ธ์
์ ์ฌ์ฉํ๋ ์ด์ ๋ ๋ญ๊น์?
๊ผฌ๋ฆฌ
XSS ๊ณต๊ฒฉ โ ๋ฌด์์ด๊ณ , ์ด๋ป๊ฒ ๋๋นํ ์ ์๋์ง๊ผฌ๋ฆฌ
์ฟ ํค์ ์ฃผ์ ์ต์
๋ค์ ๋ฌด์์ด๊ณ ์ธ์ ์ฌ์ฉํ๋์ง
secure
: https๋ง ์ฌ์ฉ๊ฐ๋ฅhttp-only
: ์คํฌ๋ฆฝํธ๋ฅผ ํตํ ์ฟ ํค ์ ๊ทผ ์ฐจ๋จsame-site
: CORS ์ธํ
๊ด๋ จ์น์คํ ๋ฆฌ์ง ์ข ๋ฅ์ ์ฐจ์ด์
๊ผฌ๋ฆฌ
ํ๋ก์ ํธ ์ฌ์ฉํ ๊ฒฝํ์๋์ง? ์ด๋ป๊ฒ ์ ์ฌ์ฉํ์
จ๋์?
๊ผฌ๋ฆฌ
์์๋ก ์์ ํ๋ฉด ์ด๋ป๊ฒ ๋ฉ๋๊น?์ฟ ํค๋ ํด๋ผ์ด์ธํธ(๋ธ๋ผ์ฐ์ )์ ์ ์ฅ๋๋ ํค-๊ฐ ์์ ๋ฌธ์์ด ๋ฐ์ดํฐ์ ๋๋ค.
์ต๋ 4KB๋ก ์ฉ๋์ด ๋งค์ฐ ์์ต๋๋ค.
๋ง๋ฃ๊ธฐ๊ฐ์ด ์์ต๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ cookie API๋ฅผ ํตํด ํด๋ผ์ด์ธํธ์์ ์ฟ ํค๋ฅผ ๋ง๋ค ์๋ ์์ง๋ง, ์ฟ ํค๋ ๋ณดํต ํน์ ๋ชฉ์ ์ ์ํด ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฒ์์ ์ฟ ํค๋ฅผ ๋ฐํํด์ ํด๋ผ์ด์ธํธ์ ๋๊ฒจ์ค๋๋ค. ์ด ๋ ์๋ต headers์ set-Cookie์์ฑ์ ์ฌ์ฉํ์ฌ ๋๊ฒจ์ค๋๋ค. ์ฟ ํค๋ฅผ ํด๋ผ์ด์ธํธ์์ ์๋ฒ๋ก ๋ณด๋ผ ๋๋, ๋ธ๋ผ์ฐ์ ๊ฐ ์๋์ผ๋ก header์ ์ฟ ํค๋ฅผ ๋ฃ์ด์ ์์ฒญ์ ํฉ๋๋ค.
๋ฃจ ๋ชฌํด๋ฆฌ๊ฐ ์ ๋์ค ํ๋ก๊ทธ๋๋จธ๋ค์ด ์ฌ์ฉํ๋ '๋งค์ง์ฟ ํค'๋ผ๋ ์ฉ์ด์์ ์๊ฐ์ ์ป์ด ์ด๋ฆ์ง์์ต๋๋ค. 1994๋ ๋น์, ๋ฃจ ๋ชฌํด๋ฆฌ๋ ๋ท์ค์ผ์ดํ์์ ๊ทผ๋ฌดํ๊ณ ์์๋๋ฐ, ์ ์์๊ฑฐ๋ ์ฑ์ ๊ฐ๋ฐํ๊ณ ์์์ต๋๋ค. ๋ท์ค์ผ์ดํ๋ ๋ฐฉ๋ฌธํ๋ ์ฌ์ฉ์์ธ์ง ์๋์ง๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํดย ๊ฐ ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์ฅํ ์ ์๋ ๋ฐฉ๋ฒ์ด ๋ฌด์์ธ์ง ๊ณ ๋ฏผํ์๋๋ฐ, ์ฟ ํค๋ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์์์ต๋๋ค.
์ ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์ฅํ ์ ์์๋์?ย โ HTTP ํ๋กํ ์ฝ์ ๋งค ์ฐ๊ฒฐ(์์ฒญ๊ณผ ์๋ต)์ ์ผํ์ฑ์ด๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ์ฒ๋ฆฌ๋ฉ๋๋ค. ๋ง์ฝ ์ด๋ค ์ ๋ณด๋ฅผ HTTP ํ๋กํ ์ฝ๋ก ๊ณ์ ์์ฒญ๊ณผ ์๋ต์ ์ฃผ๊ณ ๋ฐ์์ผ ํ๋ค๋ฉด ๋งค์ฐ ๋ฒ๊ฑฐ๋กญ๊ณ ์น ๋ก๋ฉ์ ๋๋ฆฌ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ๊ทธ๋์ ๊ทธ๋ฐ ๋ฒ๊ฑฐ๋ก์์ ์ฟ ํค์ ์ธ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ต๋๋ค.