waffle
์™€ํ”Œ๊ณต์žฅ
waffle
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (72)
    • ๐Ÿ“’ Daily Log (2)
    • ๐Ÿ”จ Dev_BE (5)
      • ๊ฐœ๋…์ •๋ฆฌ (4)
      • ๊ธฐ๋ก (1)
    • ๐Ÿ”จ Dev_FE (4)
    • ๐Ÿ”จ Dev_DB (1)
    • โš™ Dev_Ops (0)
    • ๐Ÿ”ก Lang (2)
      • Python (2)
    • ๐Ÿ’ก ํ”„๋กœ์ ํŠธ (9)
      • Base (1)
      • ์•„๋Œ€๋ฐ€๋งต (8)
    • ๐Ÿƒ๐Ÿป ์™ธ๋ถ€ํ™œ๋™ (2)
      • [ํ”„๋ฆฌ์ฝ”์Šค] ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค 7๊ธฐ - BE (2)
    • ๐Ÿ“• [STUDY] ๊ฐœ๋ฐœ (13)
      • [STUDY] ์•Œ๊ณ ๋ฆฌ์ฆ˜ (9)
      • ๋™๊ณ„ ์Šคํ„ฐ๋”” [Do-iT: ์›นํŒฉ] (2021) (4)
    • ๐Ÿ“™ [STUDY] AI (2)
      • Tensorflow (2)
    • ๐Ÿ” ๋ณด์•ˆ,์ •๋ณด๋ณดํ˜ธ (32)
      • CTF (2)
      • ๐Ÿ“˜ [STUDY] ํฌ๋ Œ์‹ (15)
      • ๐Ÿ“˜ [STUDY] ์ทจ์•ฝ์  (4)
      • ๐Ÿ“˜ [STYDY] ๋ฆฌ๋ฒ„์‹ฑ (11)
    • ๐Ÿ“” IT ๋ฒ•๋ฅ  (0)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • API
  • ๊ฐœ๋ฐœ
  • js
  • ์šฐ์•„ํ•œํ…Œํฌ์ฝ”์Šค
  • reversing
  • gdb
  • ์ˆ˜ํ•™_1
  • sql
  • write-up
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜
  • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
  • ๋ฐฑ์ค€
  • ์ž๋ฃŒ๊ตฌ์กฐ
  • ํ”„๋ฆฌ์ฝ”์Šค
  • Weekly
  • dopwn
  • ์—ฐ์Šต_์ž๋ฃŒ๊ตฌ์กฐ
  • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ_๊ณ ๋“์ 
  • Java
  • ์ˆ˜ํ•™_1(์—ฐ์Šต)
  • ์šฐํ…Œ์ฝ”
  • ๊ฐœ๋ฐœ๋ฐฑ์„œ
  • JAVA_API
  • ์šฐํ…Œ์ฝ”_7๊ธฐ
  • ์•„์ฃผ๋Œ€_์•Œ๊ณ ๋ฆฌ์ฆ˜_๊ต์œก
  • til
  • ๋ฌธ์ž์—ด
  • scrum
  • javascript
  • ๋ฐ์ผ๋ฆฌ์•Œ๊ณ 

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
waffle

์™€ํ”Œ๊ณต์žฅ

๐Ÿ”จ Dev_BE/๊ฐœ๋…์ •๋ฆฌ

[ Server ] CSP

2021. 9. 20. 22:04
728x90

๋ฐฐ๊ฒฝ์ง€์‹

 

* HTTP: HyperText Transfer Protocol์˜ ์•ฝ์ž๋กœ, ์ธํ„ฐ๋„ท์—์„œ ์ •๋ณด๋ฅผ ์†ก์ˆ˜์‹ ํ•˜๋Š” ํ”„๋กœํ† ์ฝœ (๊ทœ์•ฝ)์ž…๋‹ˆ๋‹ค. HTML๋ฌธ์„œ ์†ก์ˆ˜์‹ ์— ์ฃผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

 

* REST API: Repersentational State Trasfer API์˜ ์•ฝ์ž๋กœ, REST๋ผ๋Š” ๊ทœ์น™์— ๋งž์ถฐ ๊ฐœ๋ฐœ ๋ฐ ์ œ๊ณต๋˜๋Š” API๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

* API: Application Programming Interface์˜ ์•ฝ์ž๋กœ, ํŠน์ • ์„œ๋น„์Šค๋‚˜ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ž์‹ ๋“ค์˜ ์„œ๋น„์Šค ๋‚ด๋ถ€์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋งŒ๋“ค์–ด๋†“์€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.

 

* XSS (Cross Site Scripting): ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๊ด€๋ฆฌ์ž๊ฐ€ ์•„๋‹Œ ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์›น์‚ฌ์ดํŠธ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜๋Š” ๊ณต๊ฒฉ์„ ๋งํ•ฉ๋‹ˆ๋‹ค. HTML input ํƒœ๊ทธ๋‚˜ ๋ฉ”์ผ ๋‚ด์šฉ ๋“ฑ์— ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ์„œ๋ฒ„๋กœ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๊ทธ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค.

 


 

์ฝ˜ํ…์ธ  ๋ณด์•ˆ ์ •์ฑ…

 

์ฝ˜ํ…์ธ  ๋ณด์•ˆ ์ •์ฑ…์ด๋ž€ ์‰ฝ๊ฒŒ ๋งํ•ด์„œ ์Šคํฌ๋ฆฝํŠธ๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์‚ฝ์ž…์„ ๋ง‰๊ธฐ์œ„ํ•œ ๋ธŒ๋ผ์šฐ์ € ๋ณด์•ˆ์ •์ฑ…์ž…๋‹ˆ๋‹ค.

CORS์™€ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ œํ•œํ•œ๋‹ค๋Š” ์ ์—์„œ ๊ณตํ†ต์ ์ด ์žˆ์ง€๋งŒ, ๋ณด๋‹ค ํญ๋„“๊ฒŒ ๋‹ค์–‘ํ•œ ์„ค์ •๋“ค์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.๋˜ํ•œ CORS๋Š” ๊ธฐ๋ด„์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด์žˆ๊ณ , ์„ค์ •์„ ํ†ตํ•ด ํ•ด์ œํ•ด์•ผํ•˜๋Š”๊ฒƒ์— ๋น„ํ•ด, CSP๋Š” ๋ณ„๋„ ์„ค์ •์ด ์—†๋‹ค๋ฉด ํ•ด์ œ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

CSP ์„ค์ •

1) ์›น๋ฌธ์„œ์— meta ํƒœ๊ทธ๋กœ ์„ค์ •

html head์— ์•„๋ž˜ ๋ฉ”ํƒ€ํƒœ๊ทธ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด CSP๊ฐ€ ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค:

<meta http-equiv="Content-Security-Policy" content="{์กฐ๊ฑด๋“ค}">

 

2) html ๋ฌธ์„œ ์‘๋‹ต์‹œ Content-Security-Policy ํ—ค๋” ์ถ”๊ฐ€

์‘๋‹ต header์— ์•„๋ž˜ ๊ฐ’์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค:

Content-Security-Policy: {์กฐ๊ฑด๋“ค}

 

CSP Directives

์œ„์— {์กฐ๊ฑด๋“ค} ํ˜•์‹์œผ๋กœ ์จ๋†“์€ ๋ถ€๋ถ„์„ Directive๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

Directive๋Š” ํŠน์ • ํ˜•์‹์— ๋Œ€ํ•œ ํ—ˆ์šฉ url์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

 

ํŠน์ • ํ˜•์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒƒ๋“ค์„ ๋งํ•ฉ๋‹ˆ๋‹ค:

 

style-src:  css์™€ ๊ด€๋ จ๋œ ๊ฐ’script-src: js์™€ ๊ด€๋ จ๋œ ๊ฐ’img-src: ์ด๋ฏธ์ง€๋‚˜ favicon๊ณผ ๊ด€๋ จ๋œ ๊ฐ’default-src: directive ๊ธฐ๋ณธ๊ฐ’

 

์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”:

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

 

Content-Security-Policy - HTTP | MDN

The HTTP Content-Security-Policy response header allows web site administrators to control resources the user agent is allowed to load for a given page. With a few exceptions, policies mostly involve specifying server origins and script endpoints. This hel

developer.mozilla.org

 

๊ฐ ํ˜•์‹์— ๋Œ€ํ—ค ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’ ์„ค์ •์€ ์ด 11๊ฐœ ์ž…๋‹ˆ๋‹ค. 

ํ˜•์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์•„๋ž˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”:

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy/default-src

 

CSP: default-src - HTTP | MDN

The HTTP Content-Security-Policy (CSP) default-src directive serves as a fallback for the other CSP fetch directives. For each of the following directives that are absent, the user agent looks for the default-src directive and uses this value for it:

developer.mozilla.org

 

728x90
๋ฐ˜์‘ํ˜•

'๐Ÿ”จ Dev_BE > ๊ฐœ๋…์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ Server ] CORS  (0) 2021.09.20
[ Server ] Cookie vs Session (+JWT)  (0) 2021.09.11
[ REST API ] HTTP Methods  (0) 2021.09.11
    '๐Ÿ”จ Dev_BE/๊ฐœ๋…์ •๋ฆฌ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • [ Server ] CORS
    • [ Server ] Cookie vs Session (+JWT)
    • [ REST API ] HTTP Methods
    waffle
    waffle
    ๊ฐœ๋ฐœ๊ธฐ์ˆ  ๊ด€๋ จ ๊ธ€๋“ค์€ velog์— ์žˆ์Šต๋‹ˆ๋‹ค :) (https://velog.io/@cm_waffle) Developer waffle = new Waffle();

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”