๐Ÿ“ŒLanguage/JavaScript

TIL) innerHTML ๋ฉ”์„œ๋“œ์™€ textContent ๋ฉ”์„œ๋“œ์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

hellohailie 2022. 5. 23. 10:37

 

innerHTML ์™€ textContent ๋ฉ”์„œ๋“œ ๋ชจ๋‘ ํ…์ŠคํŠธ ๊ฐ’์„ ์ฝ์–ด์˜ค๊ณ , ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ํ•ฉ๋‹ˆ๋‹ค. 

 

ํ•˜์ง€๋งŒ ์ด ๋‘˜์˜ ์ฐจ์ด์ ์€ ๋ถ„๋ช…ํ•ฉ๋‹ˆ๋‹ค. 

 

๋จผ์ € innerHTML ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ์š”์†Œ์— ํฌํ•จ๋œ HTML*, XML**์˜ ์ „์ฒด ๋‚ด์šฉ์„ ์ฝ์–ด์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 

๊ทธ๋ž˜์„œ ํƒœ๊ทธ๋Š” ๋ฌผ๋ก ์ด๊ณ , HTML ์ฝ”๋“œ ๋‚ด์˜ ๊ณต๋ฐฑ๊นŒ์ง€๋„ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ XSS*** ๊ณต๊ฒฉ ์œ„ํ—˜์— ์ทจ์•ฝํ•˜๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 

์ด์— ๋ฐ˜ํ•ด, textContent ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ์š”์†Œ์™€ ๊ทธ ์ž์†์˜ ํ…์ŠคํŠธ ์ฝ˜ํ…์ธ ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. 

๋”ฐ๋ผ์„œ innerHTML ๋ฉ”์„œ๋“œ์™€๋Š” ๋‹ฌ๋ฆฌ HTML๋กœ ๋ถ„์„ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค๋Š” ์ ์—์„œ textContent์˜ ์„ฑ๋Šฅ์ด ๋” ์ข‹๊ณ  XSS*** ๊ณต๊ฒฉ ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค. 

 

๋”ฐ๋ผ์„œ ๊ฒฐ๋ก ์ ์œผ๋กœ ๊ฐ€๊ธ‰์  textContent๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.  textContent๋Š” ์„ฑ๋Šฅ๊ณผ ๋ณด์•ˆ์— ๊ฐ•์ ์ด ์žˆ๊ณ , ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•ด๋‹น ๋…ธ๋“œ์˜ raw text๋ฅผ ์–ป๊ฒŒ ๋จ์œผ๋กœ์จ ์ดํ›„ ์˜๋„ํ•œ ๋Œ€๋กœ ๊ฐ€๊ณตํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. 

 

 

 

 

*HTML์€ HyperText Markup Language์˜ ์•ฝ์ž์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๊ฐ€ ์ด์šฉํ•˜๋Š” ์›นํŽ˜์ด์ง€ ๊ตฌ์กฐ๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ๋งˆํฌ์—… ์–ธ์–ด์ด์ž tag๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. 

 

**XML์€ HTML๊ณผ ๋งค์šฐ ๋น„์Šทํ•œ ๋ฌธ์ž ๊ธฐ๋ฐ˜์˜ ๋งˆํฌ์—… ์–ธ์–ด(text-based markup language)์ž…๋‹ˆ๋‹ค.

XML์€ HTML์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ๋ชฉ์ ์ด ์•„๋‹Œ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ „๋‹ฌํ•  ๋ชฉ์ ์œผ๋กœ๋งŒ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

 

***XSS์€ Cross-site scripting์˜ ์•ฝ์ž์ด๊ณ , ๊ณต๊ฒฉ์ž๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์•…์„ฑ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฝ์ž…ํ•˜์—ฌ ๊ณต๊ฒฉํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. 

 

 

 

innerHTML ์ฐธ๊ณ 

https://developer.mozilla.org/ko/docs/Web/API/Element/innerHTML

textContent ์ฐธ๊ณ 

https://developer.mozilla.org/ko/docs/Web/API/Node/textContent

XML ์ฐธ๊ณ 

http://www.tcpschool.com/xml/xml_intro_basic

XSS ์ฐธ๊ณ 

https://developer.mozilla.org/en-US/docs/Glossary/Cross-site_scripting