최대 1 분 소요

오전 작업

기존에 작업했던 채팅에 금기어들을 json으로 만들고 그걸 불러와서 현재 작성한 채팅이 검열해야 할 게 필요한지 확인한다.

const replaceList = ['', '', '', '', '',
    '♥♥', '★★', '※※', '♣♣', '♠♠',
    '♥♥♥♥', '★★★★', '※※※※', '♣♣♣♣', '♠♠♠♠',
    '!#@$', '%#@!', '^!!^', '^#^', '^)^', '^0^'];

  let badWordCount = 0;

  profanity.data.forEach(word => {
    const regex = new RegExp(word, "gi");
    if (replacedMessage.match(regex)) {
      const num = Math.floor(Math.random() * replaceList.length);
      replacedMessage = replacedMessage.replace(regex, replaceList[num]);
      badWordCount++;
    }
  });

    if (badWordCount > 3) {
    replacedMessage = "대충 뭔가 험한 말";
  }

혹시 채팅을 통해 unity나 javascript 쪽에 문제가 발생할 가능성을 고민해 봤으나, 해당 핸들러에선 데이터베이스에 직접적 접근을 하지 않고 있기에 당장은 문제가 없다. xss 문제도 봤으나 그 문제는 웹 쪽에서 생기는 문제라 코드에서 제거했다.

태그:

카테고리:

업데이트: