그다음에 수정해야 할 API는 포스트의 작성 및 수정에 관한 것입니다. 포스트를 작성하고 수정할 때는 모든 HTML을 제거하는 것이 아니라, 악성 스크립트가 주입되는 것을 방지하기 위해 특정 태그들만 허용해 줍니다.
sanitize-html은 HTML의 특정 태그와 특정 속성만 허용할 수 있습니다. 코드의 상단에 sanitizeOptions라는 객체를 선언하세요.
src/api/posts/posts.ctrl.js
import Post from '../../models/post'; import mongoose from 'mongoose'; import Joi from 'joi'; import sanitizeHtml from 'sanitize-html'; const { ObjectId } = mongoose.Types; const sanitizeOption = { allowedTags: [ 'h1', 'h2', 'b', 'i', 'u', 's', 'p', 'ul', 'ol', 'li', 'blockquote', 'a', 'img', ], allowedAttributes: { a: ['href', 'name', 'target'], img: ['src'], li: ['class'], }, allowedSchemes: ['data', 'http'], }; (...)