Error/ DOM에 렌더링 될 때 target="\_blank" 속성이 사라져요! , Renderer remove my attribute!
Intro… 임무는 외부링크로 연결되는 a태그를 새로운 창에서 열리게 하는 것이었다.
회사는 마크다운으로 회사 랜딩페이지의 글들을 렌더링하고 있었다.
렌더링 된 html에 속성을 넣고 팀장님이 이건 근본적인 해결이 아니라고 코멘트 해주셨다. 마크다운 문법을 html로 렌더링 시키는 렌더러에서 작업을 수행해야 했는데,
묘하게도 속성만 DOM에 나타나지 않았다.
묘한일이다 묘한일이야… 뭔가 이상한데, 하며 입사 2주차였던 나는 선뜻 물어보지도 못하고
머리를 꽁꽁 싸매고 있었다. 이유는 뭐였을까? 원인 범인은 DOM Purify 였다. Dom Purify는 악성 스크립트를 삽입하는 XSS 공격을 막기 위한 라이브러리다. 깃허브를 보면 더러운 HTML을 깨끗한 HTML로 바꿔준다고 나와 있다. DOM Purify가 html을 살균하면서 보안에 취약한 을 더티코드로 인식해 제거해버린 것이다. 왜 보안에 취약할까? 해당 속성들을 살펴보면서 알아보자
이 둘은 보통 짝으로 같이…