TL;DR
- Nobotty는 Reddit 댓글과 다이렉트 메시지(DM)에서 봇·사기·판매 홍보 가능성을 감지해 표시하며, 선택 설정에 따라 특정 댓글과 메시지를 접거나 숨김.
- 댓글 옆에 빨강·주황·초록 점을 표시하고, 의심 계정은 최근 약 40개의 공개 게시물과 댓글을 브라우저에서 확인함.
- 댓글 전체 확인은 스레드당 2~3회 요청으로 처리하며, 결과는 7일간 캐시하고 Reddit의 요청 제한을 따름.
- 모든 처리는 브라우저에서 이뤄지며 추적·서버·계정이 없음; 신뢰도 표시는 증명이 아니며 오탐과 누락 가능성이 있음.
- Chrome·Edge·Brave·Firefox·Safari 설치 방법과 감지 기준, 한계, 테스트 및 MIT 라이선스 정보를 제공함.
Nobotty 소개
- Reddit에서 봇, 사기, 판매 홍보일 가능성이 높은 활동을 알아보도록 돕는 소형 브라우저 확장 프로그램임.
- 댓글 시간 옆에 작은 색상 점을 표시하고, 사기 및 봇 다이렉트 메시지를 숨김. 판매 홍보도 숨길지는 별도로 선택함.
- 표시는 신호일 뿐 증명이 아님. 새 계정도 실제 사람일 수 있으므로 댓글은 색상으로만 표시하며, 접기 기능을 켜지 않는 한 숨기거나 삭제하거나 차단하지 않음.
- 모든 처리가 브라우저에서 이뤄지며 추적, 서버, 계정이 없음. 자세한 내용은
PRIVACY.md에서 확인 가능함. - 데모 영상과 스크린샷은 허구의 사용자가 등장하는 모의 스레드를 사용함.
기능
- 색상 점 표시: 확인된 각 댓글의 시간 바로 뒤에 작은 점을 표시함(예:
3h ago ●). 빨강은 낮은 신뢰도, 주황은 중간 신뢰도, 초록은 양호한 신뢰도를 뜻함. 레이블이나 추가 행은 표시하지 않음. - 선택 설정으로 점 대신 가느다란 줄무늬를 표시하거나, 빨간색 댓글을 한 줄로 접거나, 툴팁에 판단 이유를 표시 가능함.
- 게시 기록 확인: 의심 계정의 최근 약 40개 공개 게시물과 댓글을 브라우저에서 확인함. 데이터는 어디에도 전송되지 않으며, 단축 URL이나 링크 모음 URL, 같은 링크 또는 문구의 반복, 몇 분 간격의 게시물 폭주, 여러 서브레딧에 걸친 게시 활동 등의 봇 패턴을 확인함.
- 다이렉트 메시지 필터: 암호화폐, “텔레그램에서 연락해 달라”는 메시지, 새 계정이 보내는 링크 등 사기 및 봇 메시지를 숨김. 웹사이트 제작 제안, 검색엔진 최적화(SEO) 제안, 무료 진단 등 판매 홍보는 별도 스위치로 설정함.
- 빠르고 요청 제한을 준수하는 확인: 댓글 작성자마다 개별 요청을 보내는 대신 스레드당 2~3회 요청으로 확인함. 먼저 스레드의 계정 ID를 요청하고, 이어 요청당 최대 100개 계정을 확인함. Reddit의 요청 제한을 따르고 Reddit이 요청하면 일시 중지하며, 결과는 7일간 캐시함.
- 설정: 색상별 표시 끄기, 빨간색 댓글 접기, 모든 계정의 게시 기록 확인, 마우스 오버 시 판단 이유 표시, 다이렉트 메시지 필터, 판매 홍보 숨기기, 표시 대상에서 제외할 신뢰 계정 설정이 가능함.
설치
Chrome, Edge, Brave
- 저장소에서
Code를 선택한 뒤Download ZIP으로 내려받고 압축을 풀면 됨. chrome://extensions를 열고 개발자 모드를 켜면 됨.Load unpacked를 선택하고 압축을 푼 폴더를 지정하면 됨.
Firefox
about:debugging#/runtime/this-firefox를 열고Load Temporary Add-on을 선택한 뒤manifest.json을 지정하면 됨.
Safari 사용자 스크립트
- Xcode 없이 무료 앱을 통해 사용자 스크립트를 실행하는 방법임.
- Mac App Store에서 무료 오픈소스 앱인 Userscripts를 설치하고 Safari 설정의 확장 프로그램에서 활성화하면 됨. 앱이 요청할 때 스크립트용 폴더를 선택하면 됨.
userscript/nobotty.user.js를 해당 폴더에 복사하면 됨.- Reddit을 열면 화면 왼쪽 아래에 작은 Nobotty 버튼이 나타남. 버튼에서 설정을 열어 기능 켜기, 강한 신호 접기, 다이렉트 메시지 필터, 봇 및 사기 숨기기, 판매 홍보도 숨기기, 신뢰 계정을 설정할 수 있음.
- 사용자 스크립트 빌드의 감지 기능은 확장 프로그램과 동일함. 다만 모의 받은 편지함에서 테스트했으며 실제 Reddit에서는 테스트하지 않음.
Safari 전체 확장 프로그램
- Xcode가 필요한 방법임.
- Xcode를 설치한 뒤
xcrun safari-web-extension-converter /path/to/nobotty를 실행하고, 생성된 앱을 빌드해 실행한 다음 Safari 설정의 확장 프로그램에서 활성화하면 됨. 개발 중에는Develop메뉴의Allow Unsigned Extensions도 활성화해야 함. - App Store에 배포하려면 Apple 개발자 계정이 필요함.
판단 방식
- 댓글: Reddit의 공개
about.json에서 확인하는 계정 생성 시점과 카르마, 자동 생성형 사용자 이름, 두 계정에서 반복되는 동일 문구, 상투적 문구, 그리고 의심 계정의 게시 기록을 확인함. - 점수를 합산해 5점 이상은 빨강, 3~4점은 주황으로 표시함. 알려진 계정의 점수가 0~1점이면 초록으로 표시함.
- 다이렉트 메시지: 사기 패턴, 판매 홍보 패턴, 링크를 보내는 새 계정을 확인함.
- 패턴은
content.js에 일반 정규 표현식으로 작성되어 있어 읽고 수정 가능함.
알려진 한계
- 봇인지 여부를 확정할 수 없으므로 오탐과 누락이 발생할 수 있음.
- Reddit 페이지의 마크업은 자주 바뀜. 선택자는
content.js의SEL및DM_SEL에 모여 있음. - 새 채팅 인터페이스는 아직 확인되지 않음. 선택자가 작동하지 않으면 페이지의 HTML과 함께 이슈를 제출하면 됨.
- 테스트는 로컬 픽스처를 대상으로 했으며, 실제 Reddit에서 대규모로 테스트하지 않음.
테스트
npm install로 의존성을 설치하면 됨.npx playwright install chromium으로 Chromium을 설치하면 됨.npm test로 테스트를 실행하면 됨.npm run build로userscript/nobotty.user.js를 다시 생성하면 됨.- 테스트는 콘텐츠 스크립트를 모의 댓글 페이지와 모의 받은 편지함에서 실행하고, 어떤 항목에 레이블이 붙는지 확인함.
기여
- 이슈와 풀 리퀘스트를 환영함. 특히 새로운 패턴, 선택자 수정, 팝업 번역 기여를 환영함.
라이선스
- MIT 라이선스를 적용하며, 자세한 내용은
LICENSE에서 확인 가능함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요