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에서는 그리지 말라고 명령을 해주면 에러가 발생하지 않는다.
.png)
react-quill로 작성한 내용을 조회 할 때 기존방식으로 출력하면 불필요한 태그까지 같이 출력된다
.png)
이렇게 dangerouslySetInnerHTML을 이용하면 contents안에 html태그들을 실행하면서 react-quill로 입력한 내용(굵은글씨, 밑줄 등..)을 똑같이 출력해주게 된다.
.png)
dangerouslySetInnerHTML을 사용하면 결국 input이 하나의 script로 작용하게되어 보안성이 떨어진다.
예시 :
<img src='#' onerror='console.log(localStorage.getItem(\"myAccessToken\"))'>
contents에 위 내용을 넣으면 localStorage에 있는 개인정보를 가져올수 있다.
.png)
yarn add dompurify
.png)
.png)