Spam Blocker
Spam Blocker అనేది వచ్చే ప్రచురణలను మూల్యాంకనం చేసి వాటికి రిస్క్ స్కోర్లను కేటాయించే కేంద్రీకృత స్పామ్ గుర్తింపు సేవ. ఇందులో రెండు ప్యాకేజీలు ఉన్నాయి:
@bitsocial/spam-blocker-server-- మూల్యాంకన మరియు ఛాలెంజ్ APIలను హోస్ట్ చేసే HTTP సర్వర్.@bitsocial/spam-blocker-challenge-- ప్రచురణలను మూల్యాంకనం కోసం పంపడానికి కమ్యూనిటీలు అనుసంధానించే తేలికపాటి క్లయింట్ ప్యాకేజీ.
సోర్స్ కోడ్: github.com/bitsocialnet/spam-blocker
రిస్క్ స్కోరింగ్ ఎలా పనిచేస్తుంది
/evaluate ఎండ్పాయింట్కు సమర్పించిన ప్రతి ప్రచురణకు ఒక సంఖ్యాత్మక రిస్క్ స్కోర్ లభిస్తుంది. ఈ స్కోర్ అనేక సంకేతాల భారిత సమ్మేళనం:
| సంకేతం | వివరణ |
|---|---|
| ఖాతా వయస్సు | కొత్త ఖాతాలకు ఎక్కువ రిస్క్ స్కోర్లు లభిస్తాయి. |
| కర్మ | కమ్యూనిటీలో సంపాదించిన కర్మ రిస్క్ను తగ్గిస్తుంది. |
| రచయిత ప్రతిష్ఠ | నేపథ్య నెట్వర్క్ ఇండెక్సర్ సేకరించిన ప్రతిష్ఠ డేటా. |
| కంటెంట్ విశ్లేషణ | టెక్స్ట్ స్థాయి హ్యూరిస్టిక్లు (లింక్ సాంద్రత, తెలిసిన స్పామ్ నమూనాలు మొదలైనవి). |
| వేగం | ఒకే రచయిత నుండి వరుసగా వేగంగా వచ్చే పోస్ట్లు రిస్క్ను పెంచుతాయి. |
| IP సమాచారం | దేశ స్థాయి భౌగోళిక స్థాన నిర్ధారణ మరియు ముప్పు-ఫీడ్ శోధనలు. దేశ కోడ్లు మాత్రమే నిల్వ చేయబడతాయి -- ముడి IP చిరునామాలు కమ్యూనిటీలతో ఎప్పుడూ పంచుకోబడవు. |
శ్రేణి పరిమితులు
రిస్క్ స్కోర్, తర్వాత ఏమి జరుగుతుందో నిర్ణయించే నాలుగు కాన్ఫిగర్ చేయదగిన శ్రేణులలో ఒకదానికి మ్యాప్ అవుతుంది:
- స్వయంచాలక ఆమోదం -- స్కోర్ తగినంత తక్కువగా ఉండటంతో ఎలాంటి ఛాలెంజ్ లేకుండానే ప్రచురణ ఆమోదించబడుతుంది.
- OAuth సరిపోతుంది -- కొనసాగడానికి రచయిత ఒక OAuth ధృవీకరణను పూర్తి చేయాలి.
- OAuth మరియు అదనపు ధృవీకరణ -- OAuth ఒక్కటే సరిపోదు; అదనపు ధృవీకరణ (ఉదా., CAPTCHA) అవసరం.
- స్వయంచాలక తిరస్కరణ -- స్కోర్ చాలా ఎక్కువగా ఉంది; ప్రచురణ నేరుగా తిరస్కరించబడుతుంది.
అన్ని పరిమితి విలువలు ప్రతి కమ్యూనిటీకి విడిగా కాన్ఫిగర్ చేయదగినవి.
ఛాలెంజ్ ప్రవాహం
ఒక ప్రచురణ ధృవీకరణ అవసరమయ్యే శ్రేణిలోకి వచ్చినప్పుడు ఛాలెంజ్ ప్రవాహం మొదలవుతుంది:
- ముందుగా OAuth ద్వారా (GitHub, Google, Twitter మరియు మద్దతు ఉన్న ఇతర ప్రొవైడర్లు) ప్రామాణీకరించమని రచయితను కోరతారు.
- OAuth ఒక్కటే సరిపోకపోతే (శ్రేణి 3), Cloudflare Turnstile ఆధారిత CAPTCHA ప్రత్యామ్నాయం చూపబడుతుంది.
- OAuth గుర్తింపు కేవలం ధృవీకరణ కోసమే ఉపయోగించబడుతుంది -- అది కమ్యూనిటీతో గానీ ఇతర వినియోగదారులతో గానీ ఎప్పుడూ పంచుకోబడదు.
API ఎండ్పాయింట్లు
POST /evaluate
రిస్క్ మూల్యాంకనం కోసం ఒక ప్రచురణను సమర్పించండి. లెక్కించిన రిస్క్ స్కోర్ను మరియు అవసరమైన ఛాలెంజ్ శ్రేణిని తిరిగి ఇస్తుంది.
POST /challenge/verify
పూర్తయిన ఛాలెంజ్ ఫలితాన్ని (OAuth టోకెన్, CAPTCHA పరిష్కారం లేదా రెండూ) ధృవీకరణ కోసం సమర్పించండి.
GET /iframe/:sessionId
ఇచ్చిన సెషన్కు తగిన ఛాలెంజ్ UIని రెండర్ చేసే, పొందుపరచదగిన HTML పేజీని తిరిగి ఇస్తుంది.
రేట్ పరిమితులు
రచయిత వయస్సు మరియు ప్రతిష్ఠ ఆధారంగా రేట్ పరిమితులు డైనమిక్గా వర్తిస్తాయి. కొత్త లేదా తక్కువ ప్రతిష్ఠ ఉన్న రచయితలు కఠినమైన పరిమితులను ఎదుర్కొంటారు, స్థిరపడిన రచయితలకు మరింత ఉదారమైన పరిమితులు లభిస్తాయి. ఇది విశ్వసనీయ భాగస్వాములను శిక్షించకుండానే స్పామ్ వరదలను నివారిస్తుంది.
నేపథ్య నెట్వర్క్ ఇండెక్సర్
రచయిత ప్రతిష్ఠ డేటాను నిర్మించి నిర్వహించడానికి సర్వర్, నెట్వర్క్ను నిరంతరం క్రాల్ చేసే ఒక నేపథ్య ఇండెక్సర్ను నడుపుతుంది. ఈ డేటా నేరుగా రిస్క్ స్కోరింగ్ పైప్లైన్లోకి చేరుతుంది, తద్వారా కమ్యూనిటీల అంతటా పదేపదే సద్భావనతో పాల్గొనేవారిని వ్యవస్థ గుర్తించగలుగుతుంది.
గోప్యత
Spam Blocker గోప్యతను దృష్టిలో ఉంచుకుని రూపొందించబడింది:
- OAuth గుర్తింపులు ఛాలెంజ్ ధృవీకరణ కోసం మాత్రమే ఉపయోగించబడతాయి మరియు కమ్యూనిటీలకు ఎప్పుడూ వెల్లడించబడవు.
- IP చిరునామాలు దేశ కోడ్లుగా మాత్రమే మార్చబడతాయి; ముడి IPలు నిల్వ చేయబడవు లేదా పంచుకోబడవు.
డేటాబేస్
ప్రతిష్ఠ డేటా, సెషన్ స్థితి మరియు కాన్ఫిగరేషన్ను స్థానికంగా నిల్వ చేయడానికి సర్వర్ SQLite (better-sqlite3 ద్వారా) ఉపయోగిస్తుంది.