아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
하얀고슴도치236
하얀고슴도치23621.04.07

JS 로 HTML DOM 생성시 ' 나 " 등 들어있으면 어떻게 처리해야 하나요??

JS 로 HTML DOM 생성시 ' 나 " 등 들어있으면 어떻게 처리해야 하나요??

예를들면 아래와 같이 body 안에 임의로 생성한 html 을 추가하고 싶습니다.

다만 아래처럼 중간에 " 나 ' 이 들어가있거나

특히나 어떠한 function 을 저 안에서 실행해야 하는 경우 아래 처럼 String Type 파라미터를 넣어야 하는 경우

계속 깨져서 몹시 불편합니다.

1. 아래와 같이 다양한 ' 나 " 등이 포함되는 경우 편하게 처리 가능한 방법이 있을까요??

2. 이러한 방식으로 동적 생성시 XSS 공격 등 보안상 혹은 기능상 이슈가 생길 여지가 있을까요??

>> 있다면 처리 방법도 같이 부탁 드립니다.

3. 추가적으로 이러한 동적 생성을 쉽게 하거나 좋은 방법이 있는지도 궁금합니다.

Ex)

html = "<div onclick="somting_fuc('1',2,'aa','cc')">"

$('body').append(html);

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 탈퇴한 사용자
    탈퇴한 사용자21.04.07

    1. 아래와 같이 다양한 ' 나 " 등이 포함되는 경우 편하게 처리 가능한 방법이 있을까요??

    - ES5 이전

    jQuery(function($) { let html = "<div onclick=\"console.log('1',2,'aa','cc')\">click</div>"; $('body').append(html); });

    - ECMA 2015 버전

    jQuery(function($) { let html = `<div onclick="console.log('1',2,'aa','cc')">click</div>`; $('body').append(html); });

    2. 이러한 방식으로 동적 생성시 XSS 공격 등 보안상 혹은 기능상 이슈가 생길 여지가 있을까요??

    XSS는 공격자가 스크립트를 넣는 기법이라 무관합니다.

    3. 추가적으로 이러한 동적 생성을 쉽게 하거나 좋은 방법이 있는지도 궁금합니다.

    vue를 사용해 보는 것도 좋은 방법일 듯 합니다.