그다음에 수정해야 할 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'],
    };
    (...)

    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.