ネットワーク編集
try{}~catch(){}~finally{}:失敗しても成功しても最後に実行して終了
yarn add react-quill
import 'react-quill/dist/quill.snow.css';
nextで使用する場合、FEは一度描画され、BRでは一度描画されるため、FEにhtmlがないためエラーが発生します.
このため、動的Importを使用してssr(server side rendering)をfalseに拡大し、FEを描画しないようにコマンドすれば、エラーは発生しません.
react-quillで記述されたコンテンツをクエリーする場合、既存の方法で出力すると不要なタグが出力されます
このような危険なSetInnerHTMLを使用してcontentsでhtmlタグを実行し、react-quillを使用して内容(太字、下線など)を入力します.同じ出力になります.
危険なSetInnerHTMLを使用すると、最終的にはスクリプトとして入力され、セキュリティが低下します.
例:
Dompurify:データに<>がある場合は、コードとしての問題を解決するために特定の文字に変換できます.
yarn add dompurify
nextは基本的にFrontEndサーバ上で1回の構成部品を描画し、Browser上で1回と2回の比較を行い、レンダリングを行います. FrontEndサーバでペイントすると、ライブラリによってペイントできないライブラリもあります.エラーが発生します. process.browser&&(レンダリングする内容):条件付きレンダリングを実行し、ブラウザ内でのみレンダリングを行います.
typeof window !== 条件付きレンダリングを実行して、「未定義」&:window時にブラウザのみでレンダリングする
React-Quill
yarn add react-quill
import 'react-quill/dist/quill.snow.css';
nextで使用する場合、FEは一度描画され、BRでは一度描画されるため、FEにhtmlがないためエラーが発生します.
このため、動的Importを使用してssr(server side rendering)をfalseに拡大し、FEを描画しないようにコマンドすれば、エラーは発生しません.
react-quillで記述されたコンテンツをクエリーする場合、既存の方法で出力すると不要なタグが出力されます
このような危険なSetInnerHTMLを使用してcontentsでhtmlタグを実行し、react-quillを使用して内容(太字、下線など)を入力します.同じ出力になります.
ハッカーの侵入を防ぐ
危険なSetInnerHTMLを使用すると、最終的にはスクリプトとして入力され、セキュリティが低下します.
例:
<img src='#' onerror='console.log(localStorage.getItem(\"myAccessToken\"))'>
コンテンツに上記の内容を追加すると、localStorageの個人情報をインポートできます.yarn add dompurify
nextでライブラリを使用する際の注意点
解決策
Reference
この問題について(ネットワーク編集), 我々は、より多くの情報をここで見つけました https://velog.io/@chlrnjswns/웹-에디터テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol