๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๐Ÿ“– CS Information (5)

<Hello Hosung๐Ÿ˜Ž/>

[CS ์ง€์‹] JWT(Json Web Token) ์ด๋ž€

1. JWT๋ž€ ๋ฌด์—‡์ธ๊ฐ€?JWT๋Š” JSON Web Token์˜ ์•ฝ์ž๋กœ, ์‚ฌ์šฉ์ž์˜ ์ธ์ฆ ์ •๋ณด์™€ ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ์ธ์ฆ ํ† ํฐ์ž…๋‹ˆ๋‹ค. JWT๋Š” ์„ธ ๊ฐ€์ง€ ์ฃผ์š” ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค:ํ—ค๋”(Header): ํ† ํฐ์˜ ํƒ€์ž…๊ณผ ์‚ฌ์šฉ๋œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค.ํŽ˜์ด๋กœ๋“œ(Payload): ์ธ์ฆ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ์ด ๋ฐ์ดํ„ฐ๋Š” ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•œ ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„์— ์ฃผ๊ณ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์„œ๋ช…(Signature): ํ† ํฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๊ฒ€์ฆํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋˜๋Š” ์•”ํ˜ธํ™”๋œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค.JWT๋Š” ์„ธ ๋ถ€๋ถ„์ด .(์ )์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค: header.payload.signature.2. JWT์˜ ์ž‘๋™ ์›๋ฆฌJWT์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:๋กœ๊ทธ์ธ: ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ์‹œ, ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ํ™•์ธํ•œ ํ›„ JWT๋ฅผ ์ƒ์„ฑํ•ฉ..

๐Ÿ“– CS Information 2024. 11. 16. 23:55
[DB] ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„๋ฅผ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ณ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ˜„๋Œ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ ๋Š˜์–ด๋‚˜๊ณ  ์‚ฌ์šฉ์ž ์š”์ฒญ์ด ๋ณต์žกํ•ด์งˆ์ˆ˜๋ก, ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์™€ ์•„ํ‚คํ…์ฒ˜๋Š” ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„ ์‹œ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๊ณ , ๊ฐ ์•„ํ‚คํ…์ฒ˜๊ฐ€ ์ ํ•ฉํ•œ ๊ฒฝ์šฐ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ์ดํ•ด๋ฅผ ๋•๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆผ๊ณผ ํ•จ๊ป˜ ์„ค๋ช…ํ•˜๋‹ˆ ๋๊นŒ์ง€ ์ฝ์–ด๋ณด์„ธ์š”! ๐Ÿ˜Š1. ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•„ํ‚คํ…์ฒ˜ (Single Database Architecture)๊ฐœ์š”๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์•„ํ‚คํ…์ฒ˜๋กœ, ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์ž‘์—…์ด ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์†Œ๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋ฉฐ, ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ ๋•๋ถ„์— ๋น ๋ฅด๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํŠน์ง•์žฅ์ :๊ตฌํ˜„๊ณผ ๊ด€๋ฆฌ๊ฐ€ ๊ฐ„๋‹จํ•˜์—ฌ ๊ฐœ๋ฐœ ์ดˆ๊ธฐ ๋‹จ๊ณ„์— ์ ํ•ฉ.๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ๋ณด์žฅํ•˜๋ฉฐ, ๋ณต์žกํ•œ ๋™..

๐Ÿ“– CS Information 2024. 11. 15. 22:36
[CS ์ง€์‹]Blocking/Non-Blocking, Sync/Async ๊ฐœ๋…

๋ถ„๋ช… ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ๋ธ”๋กœํ‚น ๊ตฌ์กฐ๋Š” ์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ~, ๋…ผ๋ธ”๋กœํ‚น  ๊ตฌ์กฐ๋Š” ์–ด์ฉŒ๊ตฌ ์ €์ฉŒ๊ตฌ~์ด๋Ÿฐ ์ด์•ผ๊ธฐ๋ฅผ ๋“ค์–ด ๋ดค์„๊ฑฐ์—์š”๐Ÿ˜ ์ € ๋˜ํ•œ ๋ธ”๋กœํ‚น, ๋…ผ๋ธ”๋กœํ‚น์— ๋Œ€ํ•ด์„œ ๊ฐ€๋ณ๊ฒŒ ์•Œ๊ณ ์žˆ์–ด ์ข€ ๋” ๋ณต์Šต ๋ฐ ๊ณต์œ ํ• ๊ฒธ ์˜ค๋Š˜ ์ด๋ ‡๊ฒŒ ์ •๋ฆฌ๋ฅผ ํ•˜๊ฒŒ ๋˜์—ˆ์–ด์š”๋จผ์ € ๋ธ”๋กœํ‚น๊ณผ ๋…ผ๋ธ”๋กœํ‚น์— ๋Œ€ํ•œ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ๋ฐฐ์šฐ๊ธฐ์ „ ๊ฐ๊ฐ ์–ด๋–ค ๊ฐœ๋…์ธ์ง€ ๋จผ์ € ์„ค๋ช…์„ ํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™์•„์š”.๋ธ”๋กœํ‚น (Blocking)๋ธ”๋กœํ‚น ๋ชจ๋“œ์—์„œ๋Š” ์–ด๋–ค ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ทธ ์ž‘์—…์„ ์š”์ฒญํ•œ ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๊ฐ€ ๋ฉˆ์ถฐ ์žˆ๋‹ค. ์ฆ‰, ์š”์ฒญ์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ํ•ด๋‹น ํ”„๋กœ์„ธ์Šค๋‚˜ ์Šค๋ ˆ๋“œ๋Š” ๋‹ค๋ฅธ ์ž‘์—…์„ ์ง„ํ–‰ํ•  ์ˆ˜ ์—†๋‹ค. ๋…ผ๋ธ”๋กœํ‚น (Non-Blocking)๋…ผ๋ธ”๋กœํ‚น ๋ชจ๋“œ์—์„œ๋Š” ์ž‘์—…์„ ์š”์ฒญํ•˜๊ณ  ๊ทธ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๋Š”๋‹ค. ์š”์ฒญ ํ›„, ์ž‘์—…์ด ์™„๋ฃŒ๋˜๋ฉด ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ฑฐ๋‚˜ ํ›„์† ์ฒ˜๋ฆฌ๋ฅผ ํ•ฉ..

๐Ÿ“– CS Information 2024. 8. 16. 11:29
[CS ์ง€์‹]SQL Injection

SQL Injection ์€ ๋ง ๊ทธ๋Œ€๋กœ SQL ๊ตฌ๋ฌธ์˜ ์ทจ์•ฝ์ ์„ ์ด์šฉํ•˜์—ฌ ๊ณต๊ฒฉํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ๊ทธ์ธ์‹œ ํ•ด๋‹น ์œ ์ €์˜ ์•„์ด๋””์™€ ํŒจ์Šค์›Œ๋“œ๊ฐ€ ๋งž๋Š”์ง€ ๊ฒ€์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•  ๊ฒƒ์œผ๋กœ ์ƒ๊ฐ๋ฉ๋‹ˆ๋‹ค.//SELECT * FROM USER WHERER ID='' AND PW =''; ๋งŒ์•ฝ ์•„์ด๋”” ์ž…๋ ฅ์ฐฝ์— TESTID' ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด '๊ฐ€ ํ•˜๋‚˜ ๋”์ฐํ˜€์„œ ์˜ค๋ฅ˜//SELECT * FROM USER WHERER ID='TESTID'' AND PW ='';๋งŒ์•ฝ ์•„์ด๋”” ์ž…๋ ฅ์ฐฝ์— ' or 1=1# ๋ฅผ ์ž…๋ ฅํ•˜๊ฒŒ ๋˜๋ฉด # ๋’ค๋กœ ์ฃผ์„์ฒ˜๋ฆฌ ๋˜์–ด์„œ ์ „์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ๋˜์–ด ๋กœ๊ทธ์ธ์ด ๋ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. //SELECT * FROM USER WHERER ID='' or 1=1#' AND PW ='';๊ทธ ์™ธ ์—ฌ๋Ÿฌ๊ฐ€์ง€ sql ..

๐Ÿ“– CS Information 2024. 8. 15. 20:32
[CS ์ง€์‹]XSS(ํฌ๋กœ์Šค์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŠธ)

ํฌ๋กœ์Šค์‚ฌ์ดํŠธ ์Šคํฌ๋ฆฝํŠธ๋Š” SQL Injection๊ณผ ๋‹ค๋ฅด๊ฒŒ JSํƒœ๊ทธ ๊ตฌ๋ฌธ์˜ ์˜ค๋ฅ˜๋ฅผ ์ด๋ฅดํ‚ค๋Š” ๋ฐฉ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค.์˜ˆ๋ฅผ ๋“ค์–ด ๊ฒŒ์‹œํŒ์— ์ž…๋ ฅ์ฐฝ์— ์ •์ƒ์ ์ธ ์ œ๋ชฉ์„ ์ž…๋ ฅํ•˜๋Š”๊ฒŒ ์•„๋‹Œ  ์ด๋Ÿฐ์‹์œผ๋กœ ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฒŒ์‹œํŒ์— ๋‚ด์šฉ์—๋Š” ๋‚ด์šฉ์ด ๋ณด์—ฌ์ฃผ๋Š”๊ฒƒ์ด ์•„๋‹Œ ์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜์–ด ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์˜คํ”ˆํ• ๋•Œ ๋งˆ๋‹ค Alert ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜ํƒ€๋‚  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋ฐ–์— location.href ๋“ฑ์„ ํ™œ์šฉํ•˜์—ฌ ํ•ด๋‹น ํŽ˜์ด์ง€๋ฅผ ์ ˆ๋•Œ ์—ด์ˆ˜ ์—†๊ฒŒ ํ• ์ˆ˜๋„ ์žˆ๊ฒ ๋„ค์š”...์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ๋ง‰๊ธฐ์œ„ํ•ด์„  ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์ง€๋งŒ ์ €๋Š” ํ•ด๋‹น ํƒœ๊ทธ์˜ ๋ฌธ์ž๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ์–ด ํƒœ๊ทธ๋กœ ์ธ์‹ํ• ์ˆ˜ ์—†๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.  var filter = title.replace(//g, "&gt;"); //xss ํ•„ํ„ฐ title = filter; //xss ํ•„ํ„ฐ๋œ ๋‚ด์šฉ ๋„ฃ๊ธฐ → ๋ฌธ์ž..

๐Ÿ“– CS Information 2024. 8. 15. 20:26