http ์š”์ฒญ, ์‘๋‹ต์—๋Š” ๊ฝค ๋งŽ์€ ํ—ค๋”๋“ค์ด ์žˆ๋Š”๋ฐ์š”,

์„œ๋ฒ„์—์„œ ๋‚ด๋ ค์ฃผ๋Š” ์‘๋‹ต ํ—ค๋”๋“ค ์ค‘ ๋ณด์•ˆ๊ณผ ๊ด€๋ จ๋œ ํ—ค๋”๋“ค์€ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ๊ณต๋ถ€ํ•ด ๋ณด์•˜์Šต๋‹ˆ๋‹ค.

์•„๋ž˜ ์‚ฌ์ดํŠธ์— ์ ‘์†ํ•˜๋ฉด ์‘๋‹ต ํ—ค๋”๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ณด์•ˆ ๋“ฑ๊ธ‰์„ ๋งค๊ฒจ ์ค๋‹ˆ๋‹ค.

https://securityheaders.com/

 

Analyse your HTTP response headers

Quickly and easily assess the security of your HTTP response headers

securityheaders.com

๋ฉ”์ธ ํŽ˜์ด์ง€์— ๊ฐ์ข… ์‚ฌ์ดํŠธ์˜ ๋“ฑ๊ธ‰ ์ˆœ์œ„๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋Š”๋ฐ,

๊ตฌ๊ธ€, ๋„ค์ด๋ฒ„, ๋‹ค์Œ, ์•ผํ›„ ๋“ฑ ์•Œ๋งŒํ•œ ์‚ฌ์ดํŠธ๋Š” ํ•˜๋‚˜๋„ ๋ณด์ด์ง€ ์•Š์•„ ์‹ค์ œ๋กœ ์ด ํ—ค๋”๋“ค์„ ์ „๋ถ€ ์ง€ํ‚ค๋Š” ๊ฒƒ๊ณผ ๋ณด์•ˆ ์‚ฌ์ด์˜ ์‹คํšจ์„ฑ์—๋Š” ์กฐ๊ธˆ ์˜๋ฌธ์ด ๋“ค๊ธด ํ•ฉ๋‹ˆ๋‹ค๋งŒ.. 

์‹ค์ œ๋กœ ํ˜„์—…์—์„œ ์ค‘์š”ํ•˜๊ฒŒ ๋‹ค๋ค„์ง€๋Š” ํ—ค๋”๋“ค๋„ ์žˆ๋Š” ๋งŒํผ ํ•œ๋ฒˆ ์•Œ๊ณ  ๊ฐ€์‹œ๋Š” ๊ฒƒ์€ ์ข‹์„ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

์•„๋ž˜ 8๊ฐœ์˜ ํ—ค๋”๋“ค์ด ๋ณด์•ˆ๊ณผ ๊ด€๋ จ์ด ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

X-Frame-Options : SAMEORIGIN

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ด ํŽ˜์ด์ง€๋ฅผ <frame> <iframe> <object> ํƒœ๊ทธ ์•ˆ์—์„œ ๋žœ๋”๋ง ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ์ •ํ•œ๋‹ค.

never.com ๊ณผ ๊ฐ™์€ ์œ ์‚ฌ ์‚ฌ์ดํŠธ๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ณ  iframe์— ๋„ค์ด๋ฒ„๋ฅผ ๋‹ด์•„๋†“๊ณ , ๋กœ๊ทธ์ธ ์ฐฝ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด ์œ„์— ๋ฎ์—ˆ๋‹ค ํ•˜์ž. ์ž˜ ๋ชฐ๋ž๋˜ ์œ ์ €๋Š” ๋กœ๊ทธ์ธ์ฐฝ์— ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•  ๊ฒƒ์ด๋‹ค! → clickjacking

 

X-XSS-Protection : 1; mode=block

๋ญ”์ง€ ๋ชฐ๋ผ๋„ 1; mode=block ์„ค์ •๊ฐ’์„ ๊ถŒ์žฅํ•œ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ Content Security Policy ๋Š” ์•Œ๊ณ  ์žˆ์œผ๋ผ๋Š”๋ฐ..

์œ„ํ—˜ ์˜ˆ์ œ๋Š” ์—ฌ๊ธฐ์„œ ์ž˜ ์„ค๋ช…ํ•˜๊ณ  ์žˆ๋‹ค. https://kevinthegrey.tistory.com/36

 

2-2) XSS(Cross Site Scripting) ๊ณต๊ฒฉ๊ธฐ๋ฒ•, ์‹œํ์–ด ์ฝ”๋”ฉ

Client-script language - HTML, javascript Server-script language - PHP SQL ์šฐ๋ฆฌ๊ฐ€ ๋‹ค๋ค˜๋˜ ์–ธ์–ด๋“ค์ด๋‹ค. ์ด์ค‘์—์„œ ์šฐ๋ฆฌ๋Š” ๋จผ์ € Javascript ๋ฅผ ์ด์šฉํ•œ ์ทจ์•ฝ์ ์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž. XSS : Cross Site Scripting - ์‚ฌ..

kevinthegrey.tistory.com

 

Strict-Transport-Security : max-age=31536000; includeSubDomains

SSL ์„ค์ •์„ ํ•ด ๋†“์•˜์„ ๊ฒฝ์šฐ์— ๋ฌด์กฐ๊ฑด https๋กœ๋งŒ ์ ‘์†์ด ๋˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ณผ๊ฑฐ http ์—์„œ https๋กœ ์ „ํ™˜์„ ํ•œ ์‚ฌ์ดํŠธ์˜ ๊ฒฝ์šฐ http์ ‘์†์ด ํ—ˆ์šฉ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋Š”๋ฐ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ๋ฅผ ๋ง‰์„ ์ˆ˜ ์žˆ๋‹ค.

 

X-Content-Type-Options : nosniff

ํ•ด๋‹น ํ—ค๋”๊ฐ€ ์žˆ์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์‘๋‹ต์— ํฌํ•จ๋œ mime type ์ด์™ธ์˜ ๊ฒƒ์œผ๋กœ๋Š” ํ•ด์„ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๊ฐ’์€ only nosniff

 

Expect-CT : enforce, max-age=300, report-uri='https://2e866ccbad5c8ccc367e2f432ee8a11c.report-uri.com/r/d/ct/enforce'

์ ์šฉ๋œ ์ง€ ์–ผ๋งˆ ์•ˆ๋œ(2-3๋…„ ์ด๋‚ด?) ํ—ค๋” ์ธ ๋“ฏ ํ•˜๋‹ค.

Expect-CT allows a site to determine if they are ready for the upcoming Chrome requirements and/or enforce their CT policy.

User agent ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์ดํŠธ์ธ์ง€ ์ธ์‹ํ•˜๋„๋ก ํ•˜๋Š” ๋“ฏ?

 

Content-Security-Policy : script-src 'self'

์ง€์ •ํ•œ ์ถœ์ฒ˜๋กœ๋ถ€ํ„ฐ์˜ ๋ฆฌ์†Œ์Šค๋งŒ ํ—ˆ์šฉํ•˜๊ฒŒ ํ•œ๋‹ค.

 

Referrer-Policy : no-referrer

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy

์š”์ฒญ์— ๋„˜์–ด์˜ค๋Š” Referer ํ—ค๋”์˜ ์–ด๋–ค ๊ฐ’์ด ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š”์ง€๋ฅผ ๋ช…์‹œํ•œ๋‹ค.

 

Feature-Policy : autoplay 'none'; camera 'none'

์‚ฌ์ดํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์–ด๋–ค ํ”ผ์ณ๋“ค์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„์ง€ ์ •ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค€๋‹ค.

  • ๋„ค์ด๋ฒ„ ๋ธ”๋Ÿฌ๊ทธ ๊ณต์œ ํ•˜๊ธฐ
  • ๋„ค์ด๋ฒ„ ๋ฐด๋“œ์— ๊ณต์œ ํ•˜๊ธฐ
  • ํŽ˜์ด์Šค๋ถ ๊ณต์œ ํ•˜๊ธฐ
  • ๋ผ์ดํ”„์ฝ”๋ฆฌ์•„ํŠธ์œ„ํ„ฐ ๊ณต์œ ํ•˜๊ธฐ
  • shared
  • ์นด์นด์˜ค์Šคํ† ๋ฆฌ ๊ณต์œ ํ•˜๊ธฐ