๋ณธ๋ฌธ์œผ๋กœ ๋ฐ”๋กœ๊ฐ€๊ธฐ

CSS, JS, ์ด๋ฏธ์ง€ ๋ฆฌ์†Œ์Šค ๋กœ๋“œ์— ์‹คํŒจํ•˜์—ฌ ํ™”๋ฉด์ด ๊นจ์ง€๋Š” ํ˜„์ƒ

node.js ์›น์„œ๋ฒ„๋ฅผ ๋ฐฐํฌ, ๊ธฐ๋™ ํ›„ ์ ‘์†ํ–ˆ๋Š”๋ฐ,  ์œ„์™€ ๊ฐ™์€ ํ˜„์ƒ์ด ๋ฐœ์ƒํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค.

(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋กœ๋“œํ•˜์ง€ ๋ชปํ•ด์„œ ์›นํŽ˜์ด์ง€ ์ž์ฒด๊ฐ€ ์ž‘๋™์„ ์•ˆ ํ•˜๊ธฐ๋„ ํ•œ๋‹ค)

 

html์ฝ”๋“œ๋ฅผ ๊ฒ€์‚ฌํ•ด๋ดค๋‹ค.

 ๋ชจ๋“  ๋งํฌ ํŒŒ์ผ์ด https://๋กœ ์—ฐ๊ฒฐ๋˜์žˆ์—ˆ๋‹ค. http://๋กœ ๋ฐ”๊พธ๊ณ  ์ ‘์†ํ•˜๋‹ˆ ์ด๋ฏธ์ง€ํŒŒ์ผ๊ณผ main.jsํŒŒ์ผ์ด ์ž˜ ๋ถˆ๋Ÿฌ์™€์กŒ๋‹ค.

 

๋ธŒ๋ผ์šฐ์ € ๊ฐœ๋ฐœ์ž๋„๊ตฌ์˜ networkํƒญ์„ ๋ณด๋ฉด,

CSS, JS, ์ด๋ฏธ์ง€ ๋“ฑ์„ ๋ชจ๋‘ HTTPS๋กœ ์š”์ฒญํ•˜๋ฉด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ถˆ๋Ÿฌ์˜ค์ง€ ๋ชปํ•ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ์ผ€์ด์Šค์ผ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋‹ค.

 

(ec2์—์„œ ๋ชจ๋“  ๋งํฌ๋ฅผ https๋กœ ๋ณ€๊ฒฝํ•ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋‚ฌ๋‹ค๊ณ  ํŒ๋‹จํ–ˆ๋‹ค. ec2๋Š” ๊ทธ๋Ÿฐ ๊ถŒํ•œ์ด ์—†๋‹ค.)

 

 

node.js์˜ ๋ฏธ๋“ค์›จ์–ด์— helmet ๋ชจ๋“ˆ์„ ์žฅ์ฐฉํ•œ๊ฑด ์•„๋‹Œ์ง€ ํ™•์ธํ•ด๋ณด์ž.

app.use(helmet());

helmet ๋ชจ๋“ˆ์€ ์›น ์ทจ์•ฝ์„ฑ์œผ๋กœ ๋ถ€ํ„ฐ ์›น์„œ๋ฒ„๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ์—ญํ• ์„ ํ•˜๋Š”๋ฐ, ๋‚ด๋ถ€์ ์œผ๋กœ ๋‹ค์Œ์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

app.use(helmet.contentSecurityPolicy());
app.use(helmet.dnsPrefetchControl());
app.use(helmet.expectCt());
app.use(helmet.frameguard());
app.use(helmet.hidePoweredBy());

app.use(helmet.hsts());

app.use(helmet.ieNoOpen());
app.use(helmet.noSniff());
app.use(helmet.permittedCrossDomainPolicies());
app.use(helmet.referrerPolicy());
app.use(helmet.xssFilter());

 

์ด ์ค‘์— ๋‚ด๋ถ€์ ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” hsts ๋ผ๋Š” ๋ชจ๋“ˆ์„ ํ†ตํ•ด HTTPS(SSL/TLS) ์—ฐ๊ฒฐ์„ ์ ์šฉํ•˜๋„๋ก ํ—ค๋”๋ฅผ ์„ธํŒ…ํ•œ๋‹ค.

 

๊ทธ๋ž˜์„œ ๋‚ด ์›น์„œ๋ฒ„๋Š” http๋กœ ํ†ต์‹ ์„ ํ•จ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ,

CSS, JS, ์ด๋ฏธ์ง€๋ฅผ ์š”์ฒญํ•  ๋•Œ https ํ†ต์‹ ์„ ์‹œ๋„ํ•จ์œผ๋กœ์จ, ๋ฆฌ๋กœ์Šค ๋กœ๋“œ์— ์‹คํŒจํ•˜๊ณ , ํ™”๋ฉด์ด ๊นจ์ง€๊ณ ,

๊ฒฐ๊ตญ ๋ฉ˜๋ถ•์— ๋น ์ง€๋Š” ๊ฒƒ์ด๋‹ค.

 

ํ•ด๊ฒฐ๋ฒ•์€ helmet๋ฏธ๋“ค์›จ์–ด ํƒ‘์žฌ ์ฝ”๋“œ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, helmet ๋ฏธ๋“ค์›จ์–ด์˜ ์†์„ฑ  ์„ค์ • ๋“ฑ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ทผ๋ฐ ์‚ฌ์‹ค ๋ณด์•ˆ์„ฑ์„ ๊ณ ๋ คํ•˜๋ฉด https๋ฅผ ํƒ‘์žฌํ•˜๋Š”๊ฒŒ ์ข‹๊ธด ํ•˜๋‹ค.

 

helmet๋ชจ๋“ˆ์„ ์‚ญ์ œํ•˜๊ณ  3001๋ฒˆ ํฌํŠธ๋กœ ์ ‘์†ํ•˜๋ฉด ๋ฐ”๋กœ ์†Œ์ŠคํŒŒ์ผ์ด ๋กœ๋”ฉ์ด ๋˜๊ณ , 2-3๋ถ„ ํ›„์— 80๋ฒˆํฌํŠธ ๋˜ํ•œ ์†Œ์ŠคํŒŒ์ผ์ด ์—…๋กœ๋“œ ๋˜์–ด์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•