eval ๋ฐ eval๊ณผ ์ ์ฌํ ๊ตฌ๋ฌธ์ ์ฌ์ฉ์ ์ ํํ๋ ์๋ก์ด ๋ณด์ ์ ์ฑ ์ผ๋ก ์ธํด manifest_version: 2๊ฐ ์๋ Chrome ํ์ฅ ํ๋ก๊ทธ๋จ์์๋ ํธ๋ค๋ฐ๊ฐ ์๋ํ์ง ์์ต๋๋ค.
ํฌ์ฐฉ๋์ง ์์ EvalError: 'unsafe-eval'์ด ๋ค์ ์ฝํ
์ธ ๋ณด์ ์ ์ฑ
์ง์นจ์์ ํ์ฉ๋๋ ์คํฌ๋ฆฝํธ ์์ค๊ฐ ์๋๊ธฐ ๋๋ฌธ์ ๋ฌธ์์ด์ JavaScript๋ก ํ๊ฐํ๋ ๊ฒ์ ๊ฑฐ๋ถํ์ต๋๋ค. "script-src 'self' chrome-extension-resource:".
handlebars.js:1402
JavaScriptCompiler.createFunctionContext ํธ๋ค๋ฐ.js:1402
JavaScriptCompiler.compile ํธ๋ค๋ฐ.js:1320
handlebars.js:2105 ์ปดํ์ผ
(์ต๋ช
ํจ์) handlebars.js:2112
(์ต๋ช
ํจ์) panel.js:14 <--- Handlebars.compile()์ด๋ผ๋ ์คํฌ๋ฆฝํธ
์ด๊ฒ์ ํ๋ ์์ํฌ์ ๋์์ธ์ ๊ณ์นํฉ๋๋ค. ๋์ ์ผ๋ก ์์ฑ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์์ ์คํ ์ค์ธ ๊ฒฝ์ฐ ํ ํ๋ฆฟ์ ๋ฏธ๋ฆฌ ์ปดํ์ผํ๊ณ ์์ฑ๋ ์ถ๋ ฅ์ ํจํค์ง์ ํฌํจํด์ผ ํฉ๋๋ค.
์ด๊ฒ์ ๋์๊ฒ ๋ฌธ์ ๊ฐ ๋๋ค. ๋ค์์ Google ํ์ด์ง์ ์ธ์ฉ๋ฌธ์ ๋๋ค.
"๊ทธ๋ฌ๋ ์ฐ๋ฆฌ๋ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ฑ๋ฅ ์ต์ ํ์ ํํ์ ์ฉ์ด์ฑ์ ์ํด eval() ๋ฐ new Function()๊ณผ ๊ฐ์ eval๊ณผ ์ ์ฌํ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์๊ณ ์์ต๋๋ค. ํ ํ๋ฆฟ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํนํ ์ด๋ฌํ ๊ตฌํ ์คํ์ผ์ ์ทจ์ฝํฉ๋๋ค. _์ผ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(์: Angular .js) CSP๋ฅผ ์ฆ์ ์ง์ํฉ๋๋ค._ ๋ง์ ์ธ๊ธฐ ์๋ ํ๋ ์์ํฌ๊ฐ ์์ง ํ์ฅ ๊ธฐ๋ฅ์ ํ๊ฐ๊ฐ ์๋ ์ธ๊ณ์ ํธํ๋๋ ๋ฉ์ปค๋์ฆ์ผ๋ก ์ ๋ฐ์ดํธ๋์ง ์์์ต๋๋ค. ๋ฐ๋ผ์ ํด๋น ๊ธฐ๋ฅ์ ๋ํ ์ง์์ ์ ๊ฑฐํ๋ ๊ฒ์ ๊ฐ๋ฐ์์๊ฒ ์์๋ณด๋ค ๋ฌธ์ ๊ฐ ๋ ๋ง์ ๊ฒ์ผ๋ก ํ๋ช ๋์์ต๋๋ค."
๋ฐ๋ผ์ ์ผ๋ถ ํ ํ๋ฆฟ ์์คํ ์ CSP ๊ท๊ฒฉ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ง๋ง ํธ๋ค๋ฐ๋ ๊ด๋ฆฌํ ์ ์์ต๋๊น? ์ด์ ๋ด ํ๋ก์ ํธ์์ Handlebars๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์ฑ CSP ํธํ์ ์ํด 2๊ฐ์ง ์ ํ์ ํด์ผ ํฉ๋๋ค.
1) ํธ๋ค๋ฐ ๋ฏ์ด๋ด๊ธฐ
2) ๋ชจ๋ ํ
ํ๋ฆฟ์ ๋ฏธ๋ฆฌ ์ปดํ์ผํฉ๋๋ค.
๋ด ํ ํ๋ฆฟ์ ๋์ ํน์ฑ์ ๊ฐ์ํ ๋ ์ฌ์ ์ปดํ์ผ์ ์ต์ ์ด ์๋๋๋ค. ์ด์ ์ด ๊ฒฐํจ์ด ๋ซํ๊ธฐ ๋๋ฌธ์ ํธ๋ค๋ฐ๋ฅผ ๋ฏ์ด๋ด์ผ ํฉ๋๋ค.
์ฌ๊ธฐ์์ CSP ๊ฐ์ด๋๋ฅผ ๋ฐ๋ฅผ ์ ์๋์?
"์์ค ๋ชฉ๋ก์ 'unsafe-eval'์ ์ถ๊ฐํ์ฌ ํ์ฉํ ์ ์์ต๋๋ค."
๊ทธ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด CSP๋ฅผ ์ฌ์ฉํ๋ ์์ ์ ๋ฌดํจํํฉ๋๋ค.
FWIW, Cloudant(Apache CouchDB ๊ธฐ๋ฐ)๋ ์ต๊ทผ eval()
๋ฐ new Function()
https://console.bluemix.net/docs/services/Cloudant/release_info๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ด ์คํฌ๋ฆฝํธ ์ฒ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ์ต๋๋ค.
ํ ํ๋ฆฟ์ JS๋ก ๋ฏธ๋ฆฌ ์ปดํ์ผํ๋ ๊ฒ์ ์ผ๋ถ ์๋๋ฆฌ์ค์์ ์๋ํ์ง๋ง ๋ชจ๋ ์๋๋ฆฌ์ค์์๋ ์๋ํ์ง ์์ต๋๋ค. Handlebars.js๋ฅผ ๋ ๋ง์ ๊ณณ์์ ์ฌ์ฉํ ์ ์๋๋ก ๋ค๋ฅธ ์ต์ ์ด ์์ผ๋ฉด ์ข์ ๊ฒ์ ๋๋ค.
ํ์ง๋ง...๊ทธ๊ฑด ๋จ์ง ํฌ๋ง์ฌํญ์ผ ์๋ ์์ต๋๋ค. :์ค๋ง์ผ๋ฆฌ: ๐ญ
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
๊ทธ๊ฒ์ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฃผ์ ์ ๋ฐฉ์งํ๊ธฐ ์ํด CSP๋ฅผ ์ฌ์ฉํ๋ ์์ ์ ๋ฌดํจํํฉ๋๋ค.