content-type
content-type은 클라이언트에게 반환된 컨텐츠의 유형이 실제로 무엇인지를 알려주는 역할이다.
대수롭지 않게 생각하고 그냥 넘어갈 수 있는 부분이지만 사실은 시스템 환경 분석에 있어서 꼭 보고 넘어가야하는 부분이라는 생각이 든다.
content-type 종류
사실 content-type: text/html 형식이 아니면 html 스크립트를 실행 시킬 수 없다. 즉, XSS를 터트릴 수 없게된다. 그 중 몇개만 알아보도록 하자
application/json: js에서 쉽게 파싱하고 생성할 수 있도록 javascript 객체로 해석되며, html 스크립트를 실행 시킬 수 없음.
text/plain: 일반 텍스트 데이터를 나타내며, html 스크립트를 실행하는데 사용되지 않음.
application/xml: xml 데이터를 나타내며, html 스크립트 실행을 기본적으로 지원하지 않음.
🎨 javascript 객체로 해석?
js 객체로 해석된다는 말은 content-type으로 전달된 데이터를 js에서 다룰 수 있는 형태인 js객체로
변환한다는 뜻이다
content-type으로 전달된 데이터는 브라우저가 자동으로 해당 데이터를 받아들여 js객체로 변환하게
되며 js코드에서 해당 객체의 속성을 읽거나 수정할 수 있음.
허나 html 실행과 javascript 실행은 별개이며 js객체로 해석된다는 말이 꼭 html을 실행시키지 못한다는 말과
이어지지는 않는다. html은 그냥 text/html일때 실행된다
text/html일때 html이 실행되면서 그안의 js가 실행된다