๐Ÿ”—ย ์ฐธ๊ณ ์ž๋ฃŒ

์œ„ํ‚คํ”ผ๋””์•„ / ์‚ฌ์ดํŠธ๊ฐ„ ์š”์ฒญ ์œ„์กฐ /ย https://en.wikipedia.org/wiki/Cross-site_request_forgery

NHN Cloud Meetup! / ๋ธŒ๋ผ์šฐ์ € ์‹ธ์›€์— ๋“ฑ ํ„ฐ์ง€๋Š” ๊ฐœ๋ฐœ์ž๋“ค์„ ์œ„ํ•œ HTTP์ฟ ํ‚ค์™€ ํ†ฐ์บฃ ์ฟ ํ‚ค ํ”„๋กœ์„ธ์„œ ์ด์•ผ๊ธฐ /ย https://meetup.toast.com/posts/209

์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ฐœ๋… /ย https://interconnection.tistory.com/74

์ฟ ํ‚ค/์„ธ์…˜/ํ† ํฐ ์ž๋ฃŒ ์•„์นด์ด๋น™

์˜ˆ์ƒ์งˆ๋ฌธ ๋ฐ ๋‹ต๋ณ€


From gitHub

์ฟ ํ‚ค๊ฐ€ ๋ฌด์—‡์ธ๊ฐ€์š”?

์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ(๋ธŒ๋ผ์šฐ์ €)์— ์ €์žฅ๋˜๋Š” ํ‚ค-๊ฐ’ ์Œ์˜ ๋ฌธ์ž์—ด ๋ฐ์ดํ„ฐ์ž…๋‹ˆ๋‹ค.

์ตœ๋Œ€ 4KB๋กœ ์šฉ๋Ÿ‰์ด ๋งค์šฐ ์ž‘์Šต๋‹ˆ๋‹ค.

๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ cookie API๋ฅผ ํ†ตํ•ด ํด๋ผ์ด์–ธํŠธ์—์„œ ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ฟ ํ‚ค๋Š” ๋ณดํ†ต ํŠน์ • ๋ชฉ์ ์„ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์„œ๋ฒ„์—์„œ ์ฟ ํ‚ค๋ฅผ ๋ฐœํ–‰ํ•ด์„œ ํด๋ผ์ด์–ธํŠธ์— ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค. ์ด ๋•Œ ์‘๋‹ต headers์— set-Cookie์†์„ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„˜๊ฒจ์ค๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ์—์„œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ผ ๋•Œ๋Š”, ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ž๋™์œผ๋กœ header์— ์ฟ ํ‚ค๋ฅผ ๋„ฃ์–ด์„œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค๋Š” ์™œ ์ƒ๊ฒจ๋‚ฌ๋‚˜์š”?

๋ฃจ ๋ชฌํˆด๋ฆฌ๊ฐ€ ์œ ๋‹‰์Šค ํ”„๋กœ๊ทธ๋ž˜๋จธ๋“ค์ด ์‚ฌ์šฉํ•˜๋Š” '๋งค์ง์ฟ ํ‚ค'๋ผ๋Š” ์šฉ์–ด์—์„œ ์˜๊ฐ์„ ์–ป์–ด ์ด๋ฆ„์ง€์—ˆ์Šต๋‹ˆ๋‹ค. 1994๋…„ ๋‹น์‹œ, ๋ฃจ ๋ชฌํˆด๋ฆฌ๋Š” ๋„ท์Šค์ผ€์ดํ”„์—์„œ ๊ทผ๋ฌดํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ์ „์ž์ƒ๊ฑฐ๋ž˜ ์•ฑ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋„ท์Šค์ผ€์ดํ”„๋Š” ๋ฐฉ๋ฌธํ–ˆ๋˜ ์‚ฌ์šฉ์ž์ธ์ง€ ์•„๋‹Œ์ง€๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ดย ๊ฐ ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ๋ฌด์—‡์ธ์ง€ ๊ณ ๋ฏผํ•˜์˜€๋Š”๋ฐ, ์ฟ ํ‚ค๋Š” ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

์™œ ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์—†์—ˆ๋‚˜์š”?ย โ†’ HTTP ํ”„๋กœํ† ์ฝœ์˜ ๋งค ์—ฐ๊ฒฐ(์š”์ฒญ๊ณผ ์‘๋‹ต)์€ ์ผํšŒ์„ฑ์ด๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์–ด๋–ค ์ •๋ณด๋ฅผ HTTP ํ”„๋กœํ† ์ฝœ๋กœ ๊ณ„์† ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ์ฃผ๊ณ ๋ฐ›์•„์•ผ ํ•œ๋‹ค๋ฉด ๋งค์šฐ ๋ฒˆ๊ฑฐ๋กญ๊ณ  ์›น ๋กœ๋”ฉ์„ ๋Š๋ฆฌ๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ทธ๋Ÿฐ ๋ฒˆ๊ฑฐ๋กœ์›€์„ ์ฟ ํ‚ค์™€ ์„ธ์…˜์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.