try{}~ catch(){}~ finally{}: 실패했든 성공했든 마지막에 실행을 하고 끝낸다
yarn add react-quill
import 'react-quill/dist/quill.snow.css';
next에서 사용할 때 FE에서 한번 그리고 Br에서 한번 그리기때문에 Fe에서는 html이 없어서 에러가 발생한다.
이를 위해서 Dynamic Import를 이용해서 ssr(server side rendering)을 false로 줌으로써 Fe에서는 그리지 말라고 명령을 해주면 에러가 발생하지 않는다.
react-quill로 작성한 내용을 조회 할 때 기존방식으로 출력하면 불필요한 태그까지 같이 출력된다
이렇게 dangerouslySetInnerHTML을 이용하면 contents안에 html태그들을 실행하면서 react-quill로 입력한 내용(굵은글씨, 밑줄 등..)을 똑같이 출력해주게 된다.
dangerouslySetInnerHTML을 사용하면 결국 input이 하나의 script로 작용하게되어 보안성이 떨어진다.
예시 :
<img src='#' onerror='console.log(localStorage.getItem(\"myAccessToken\"))'>
contents에 위 내용을 넣으면 localStorage에 있는 개인정보를 가져올수 있다.
yarn add dompurify