2025-03-10 TIL
오전 작업
기존에 작업했던 채팅에 금기어들을 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 문제도 봤으나 그 문제는 웹 쪽에서 생기는 문제라 코드에서 제거했다.