Etherpad-lite: ์งˆ๋ฌธ: etherpad์˜ ๋ณด์•ˆ์„ ์œ„ํ•ด ์ถ”๊ฐ€ํ•  CSP ํ—ค๋”๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2016๋…„ 12์›” 09์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: ether/etherpad-lite

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

Waiting on Testing wontfix

๋ชจ๋“  7 ๋Œ“๊ธ€

  • [x] https://observatory.mozilla.org/analyze/video.etherpad.com ์—์„œ Etherpad ์ฝ”๋“œ ๊ธฐ๋ฐ˜์—์„œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์†์ƒ์‹œํ‚ค์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์„ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ์€ ์•„๋งˆ๋„ ์„ค์ •์— ๋ช‡ ๊ฐ€์ง€ ํ•ญ๋ชฉ์„ ๋„ฃ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
  • [ ] ํ•  ์ˆ˜ ์—†๋Š” ๋ถ€๋ถ„์€ ๋ฌธ์„œํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Video.etherpad.com์— ๋Œ€ํ•œ ์ฐธ๊ณ  ๊ฒฐ๊ณผ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

image

๊ฐ„๋‹จํ•œ npm install ep_helmet ๋˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์„ค์น˜ UI๋ฅผ ํ†ตํ•ด ep_helmet ๋ฅผ ์„ค์น˜ ํ•˜๋ฉด Observatory https://observatory.mozilla.org/analyze/video.etherpad.com

๋ฌธ์ œ์˜ ๋ฒ”์œ„๋Š” "CSP ํ—ค๋”๊ฐ€ ๋ฌด์—‡์ธ์ง€"์˜€์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ €๋Š” ์•ฝ๊ฐ„ ์ ‘ํ–ˆ๊ณ  ๊ณต๊ฒฉ์ž๊ฐ€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํ—ค๋” ๊ด€๋ จ ์ต์Šคํ”Œ๋กœ์ž‡์„ ๋” ๋งŽ์ด ๋‹ค๋ฃจ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๊ด€๋ฆฌ์ž์—๊ฒŒ ๋ณด์•ˆ์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•œ "์› ํด๋ฆญ" ์†”๋ฃจ์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ์•„์ง ์˜ฌ๋ฐ”๋ฅธ CSP ํ—ค๋”์— ๋Œ€ํ•œ ์งˆ๋ฌธ์„ "์ˆ˜์ •"ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. CSP๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์ธ๋ผ์ธ JS๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— Etherpad์—์„œ ๊ตฌํ˜„ํ•˜๊ธฐ๊ฐ€ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ์  ์žฅ. ๊ทธ๋ฆฌ๊ณ  ๋™์ ์ด๋ฏ€๋กœ nonce ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ทจํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ๋งŽ์€ ํŒŒ์ผ์„ ๋งŒ์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๊ฐ€๋Šฅํ•œ์ง€์กฐ์ฐจ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ ๋‚˜๋Š” ๋ช‡ ์‹œ๊ฐ„์„ ๋” ๋ณด๋‚ด๊ณ  ๋‚ด๊ฐ€ ์–ด๋””๋กœ ๊ฐ€๋Š”์ง€ ๋ณด๋ ค๊ณ  ๋…ธ๋ ฅํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. html ํŒŒ์ผ์—์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์˜ฎ๊ฒจ์•ผ ํ•œ๋‹ค๊ณ  ํ™•์ธํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ๋…ธ๋ ฅํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Imho unsafe-eval ๋ฐ unsafe-inline์€ ํ•ด๊ฒฐํ•˜๋ ค๋Š” ๋…ธ๋ ฅ์˜ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” 2๊ฐ€์ง€ ๊ฐ€์žฅ ํฐ ๋ฒกํ„ฐ์ž…๋‹ˆ๋‹ค. ์•„๋งˆ๋„ ๋‚ด์ผ..

https://github.com/johnmclear/ep_helmet

์ข‹์Šต๋‹ˆ๋‹ค. ์ด์ œ CSP์— ๋Œ€ํ•œ ๋ณ‘ํ•ฉ ์š”์ฒญ์ด ์žˆ์œผ๋ฉฐ ์—…๋ฐ์ดํŠธ๋œ ํ—ฌ๋ฉง์„ ๊ฒŒ์‹œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@muxator ์—์„œ ๊ฒ€ํ† ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด ์ˆ˜์ • btw์— ๋Œ€ํ•œ ๋‚ด ๊ด€์‹ฌ์‚ฌ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ข…์ข… ์ธ๋ผ์ธ js๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋ฏ€๋กœ ์—„๊ฒฉํ•œ csp ์ •์ฑ…์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ์ผ๋ถ€ ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค

์˜ค๋Š˜ ์žฌ์ˆ˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด PR์€ ๋„ˆ๋ฌด ๊ด€๋ จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ง์ ‘ ๋ณ‘ํ•ฉํ•˜๊ณ  ์‹ถ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

PR์€ nonce๋ฅผ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. inlineJS ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•˜๋Š” ๋ฐ๋Š” ์ข‹์ง€ ์•Š์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ npm install ep_helmet ๊ฐ€ ํ•˜๋ฃจ๋ฅผ ์ ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค. :)

์ด ๋ฌธ์ œ๋Š” ์ตœ๊ทผ ํ™œ๋™์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ž๋™์œผ๋กœ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋” ์ด์ƒ ํ™œ๋™์ด ์—†์œผ๋ฉด ํ์‡„๋ฉ๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ๊ธฐ์—ฌ์— ๊ฐ์‚ฌ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰