HashDos ์ทจ์•ฝ์ 

HashDos๋Š” ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•œ Dos ๊ณต๊ฒฉ๋ฒ•์ด๋‹ค.

์ด๊ฑธ ์ดํ•ดํ•˜๋ ค๋ฉด ๋จผ์ € ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ๊ตฌ์กฐ๋ฅผ ์•Œ์•„์•ผ ํ•œ๋‹ค.



ํ•ด์‹œํ…Œ์ด๋ธ”

ํ•ด์‹œํ…Œ์ด๋ธ”์€ ํ‚ค๊ฐ’์„ ํ•ด์‹ฑํ•ด์„œ ํ‚ค์™€ ๊ฐ’์„ ๋งคํ•‘์‹œํ‚ค๋Š” ์ž๋ฃŒ๊ตฌ์กฐ ํ˜•ํƒœ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์ผ€์ด์Šค์—์„œ๋Š” ๋ชน์‹œ ๋น ๋ฅธ ์‹œ๊ฐ„ ๋‚ด์— ๊ฐ’์„ ๊บผ๋‚ด์˜ฌ ์ˆ˜ ์žˆ์ง€๋งŒ, ์•„๋‹Œ ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌธ์ œ๋‹ค.

ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ํ•ด์‹œ ํ‚ค ์ถฉ๋Œ(collision)์ด๋‹ค.
ํ•ด์‹œํ…Œ์ด๋ธ”์€ ํ‚ค๊ฐ’์— ํ•ด์‹ฑ์„ ์ˆ˜ํ–‰ํ•ด ํ‚ค์™€ ๊ฐ’์„ ๋งคํ•‘์‹œํ‚ค๋Š”๋ฐ, ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ์ •๋„์˜ ์ฐจ์ด๋Š” ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐ’์„ ๋„ฃ๋”๋ผ๋„ ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ฌ ์ˆ˜๊ฐ€ ์žˆ๋‹ค.

์ด๋Ÿด๋•Œ๋Š” ๋ณดํ†ต ๋‚ด๋ถ€์— ๋ฆฌ์ŠคํŠธ๋กœ ์ถ”๊ฐ€ํ•ด์„œ ์„ ํ˜•๊ฒ€์ƒ‰์„ ํ•˜๊ฑฐ๋‚˜ ํ•ด์‹ฑ์„ ์žฌ๊ท€์ ์œผ๋กœ ๋˜ ํ•œ๋‹ค๋งŒ, ์ถ”๊ฐ€์ ์ธ ๋ถ€ํ•˜๋Š” ํ•„์—ฐ์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค.

HashDos๋Š” ์ด๋Ÿฌํ•œ ์ถฉ๋Œ์„ ๋ฐœ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ผ๋ จ์˜ ๊ฐ’๋“ค์„ ๋•Œ๋ ค๋„ฃ์–ด์„œ ๊ณ ์˜์ ์œผ๋กœ ์„ฑ๋Šฅ ๊ณผ๋ถ€ํ•˜๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ณต๊ฒฉ๋ฒ•์ด๋‹ค.




์›น ์„œ๋ฒ„์—์„œ

์ผ๋ฐ˜์ ์œผ๋กœ ์›น์„œ๋ฒ„๋“ค์€ http request๋ฅผ ๋ฐ›์„๋•Œ, query๋‚˜ body ๊ฐ’๋“ค์„ ํ•ด์‹œํ…Œ์ด๋ธ”์˜ ํ˜•ํƒœ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
๋ฐ”๋กœ ์—ฌ๊ธฐ์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ณต๊ฒฉ์ž๋“ค์€ body ํŒŒ๋ผ๋ฏธํ„ฐ ๋“ฑ์— ํ•ด์‹œ์ถฉ๋Œ์ด ๋ฐœ์ƒํ•˜๋Š” ํ‚ค๊ฐ’์„ ์ž”๋œฉ ์šฐ๊ฒจ๋„ฃ๊ณ  ๋ณด๋‚ธ๋‹ค.

์ด๋Ÿฐ์‹์œผ๋กœ ๋ง์ด๋‹ค.

๊ทธ๋Ÿฌ๋ฉด ๋‹น์—ฐํžˆ ํ•ด์‹œ์ถฉ๋Œ๋กœ cpu ์‚ฌ์šฉ๋ฅ ์ด ์น˜์†Ÿ๊ณ .. ์„œ๋ฒ„๊ฐ€ ๋ป—๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด๋‹ค.




๋Œ€์‘๋ฒ• 1: ์ž…๋ ฅ๊ฐ’ ์ œํ•œ

ํ•ด์‹œํ…Œ์ด๋ธ” ์ž์ฒด์˜ ๋ณธ์งˆ์ ์ธ ๋ฌธ์ œ๋ฅผ ์—†์•จ ์ˆ˜๋Š” ์—†๋‹ค.

๊ทธ๋ž˜์„œ ์ƒ์‹์ ์ธ ํ•œ๋„๋กœ๋งŒ ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•˜๋Š” ๋ฏธ๋ด‰์ฑ…์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ค. ์•„๋ฌด๋ฆฌ ์ถฉ๋Œ์ด ๋– ๋„ ๋ช‡๊ฐœ ์•ˆ๋˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์—†์œผ๋‹ˆ ๋ง์ด๋‹ค.

spring, php ๋“ฑ์˜ ์„œ๋ฒ„ ํ™˜๊ฒฝ๋“ค์€ ์ด์— ๋Œ€ํ•œ ์„ค์ •๊ฐ’์„ ์ œ๊ณตํ•œ๋‹ค.
์˜ˆ๋ฅผ ๋“ค์–ด ํ†ฐ์บฃ์—์„œ๋Š” max parameter count๋ผ๋Š” ์˜ต์…˜์œผ๋กœ ํŒŒ๋ผ๋ฏธํ„ฐ ๊ฐœ์ˆ˜๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค๋„ ๋Œ€๋ถ€๋ถ„ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•  ๊ฒƒ์ด๋‹ค.




๋Œ€์‘๋ฒ• 2: ๋žœ๋คํ•ด์‹ฑ

์ด๊ฑด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ผ๋ถ€ ๊ฐœ์„ ํ•œ ๋ฐฉ๋ฒ•์ด๋‹ค.

๊ณต๊ฒฉ์ž๊ฐ€ ํ•ด์‹œ ์ถฉ๋Œ์„ ์˜ˆ์ƒํ•ด์„œ ๊ฐ’์„ ์ง‘์–ด๋„ฃ๋Š” ๊ฒƒ๋„, ํ•ด์‹ฑ์˜ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ณ ์ •์ ์ด๋ผ ๊ฐ€๋Šฅํ•œ ๊ฒƒ์ด๋‹ค.

๊ทธ๋ž˜์„œ ์ด๊ฑธ ๋ง‰๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๊ฐ€ SipHash๋‹ค.
์ด๋Ÿฌํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜๋“ค์€ ๋‚œ์ˆ˜์— ๊ธฐ๋ฐ˜ํ•ด ํ•ด์‹œ๊ฐ’์„ ์ƒ์„ฑํ•˜๋‹ˆ, ๋งค๋ฒˆ ํ•ด์‹œ๊ฐ’์ด ๋‹ฌ๋ผ์ง€๊ณ  ํ•ด์‹œ์ถฉ๋Œ์ด ์ผ์–ด๋‚˜๋Š” ์กฐ๊ฑด๋„ ๋‹ฌ๋ผ์ง„๋‹ค.

๋ณธ์ธ์ด ์“ฐ๊ณ ์žˆ๋Š” ์‹œ์Šคํ…œ์—์„œ ์–ด๋–ค ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋Š”์ง€, ์‹คํ–‰ํ• ๋•Œ๋งˆ๋‹ค ํ•ด์‹œ๊ฐ’์ด ๋‹ฌ๋ผ์ง€๋Š”์ง€๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด ๋˜๊ฒ ๋‹ค.
๋‹ฌ๋ผ์ง„๋‹ค๋ฉด ๊ฑฐ์˜ ๊ดœ์ฐฎ์„ ๊ฒƒ์ด๋‹ค.



์ฐธ์กฐ
https://m.blog.naver.com/PostView.naver?blogId=wnrjsxo&logNo=221360964753&proxyReferer=