Μετάβαση στο κύριο περιεχόμενο

Αποκλεισμός ανεπιθύμητης αλληλογραφίας

Το Spam Blocker είναι μια κεντρική υπηρεσία ανίχνευσης ανεπιθύμητων μηνυμάτων που αξιολογεί τις εισερχόμενες δημοσιεύσεις και εκχωρεί βαθμολογίες κινδύνου. Αποτελείται από δύο πακέτα:

  • @bitsocial/spam-blocker-server -- ο διακομιστής HTTP που φιλοξενεί τα API αξιολόγησης και πρόκλησης.
  • @bitsocial/spam-blocker-challenge -- ένα ελαφρύ πακέτο πελάτη που ενσωματώνουν οι κοινότητες για να στείλουν δημοσιεύσεις για αξιολόγηση.

Κωδικός πηγής: github.com/bitsocialnet/spam-blocker

Πώς λειτουργεί η βαθμολογία κινδύνου

Κάθε δημοσίευση που υποβάλλεται στο τελικό σημείο /evaluate λαμβάνει μια αριθμητική βαθμολογία κινδύνου. Η βαθμολογία είναι ένας σταθμισμένος συνδυασμός πολλών σημάτων:

ΣήμαΠεριγραφή
Ηλικία λογαριασμούΟι νεότεροι λογαριασμοί λαμβάνουν υψηλότερους βαθμούς κινδύνου.
ΚάρμαΤο συσσωρευμένο κάρμα της κοινότητας μειώνει τον κίνδυνο.
Φήμη συγγραφέαΔεδομένα φήμης που συλλέγονται από τον ευρετηριαστή δικτύου παρασκηνίου.
Ανάλυση περιεχομένουΕυρετικά σε επίπεδο κειμένου (πυκνότητα συνδέσμων, γνωστά μοτίβα ανεπιθύμητων μηνυμάτων κ.λπ.).
ΤαχύτηταΟι γρήγορες διαδοχικές δημοσιεύσεις από τον ίδιο συγγραφέα αυξάνουν τον κίνδυνο.
νοημοσύνη IPΑναζητήσεις γεωγραφικής τοποθεσίας και ροών απειλών σε επίπεδο χώρας. Αποθηκεύονται μόνο κωδικοί χωρών -- οι πρωτογενείς διευθύνσεις IP δεν κοινοποιούνται ποτέ σε κοινότητες.

Κατώφλια Βαθμίδας

Η βαθμολογία κινδύνου αντιστοιχεί σε ένα από τα τέσσερα διαμορφώσιμα επίπεδα που καθορίζουν τι θα συμβεί στη συνέχεια:

  1. Αυτόματη αποδοχή -- η βαθμολογία είναι αρκετά χαμηλή ώστε η δημοσίευση να εγκρίνεται χωρίς καμία αμφισβήτηση.
  2. OAuth-επαρκές -- ο συγγραφέας πρέπει να ολοκληρώσει μια επαλήθευση OAuth για να προχωρήσει.
  3. OAuth-plus-more -- Το OAuth μόνο δεν αρκεί. απαιτείται πρόσθετη επαλήθευση (π.χ. CAPTCHA).
  4. Αυτόματη απόρριψη -- η βαθμολογία είναι πολύ υψηλή. η δημοσίευση απορρίπτεται κατηγορηματικά.

Όλες οι τιμές κατωφλίου μπορούν να διαμορφωθούν ανά κοινότητα.

Ροή πρόκλησης

Όταν μια δημοσίευση εμπίπτει σε ένα επίπεδο που απαιτεί επαλήθευση, η ροή πρόκλησης ξεκινά:

  1. Ο συγγραφέας ζητείται πρώτα να πραγματοποιήσει έλεγχο ταυτότητας μέσω OAuth (GitHub, Google, Twitter και άλλοι υποστηριζόμενοι πάροχοι).
  2. Εάν το OAuth από μόνο του είναι ανεπαρκές (επίπεδο 3), παρουσιάζεται μια εναλλακτική CAPTCHA που υποστηρίζεται από το Cloudflare Turnstile.
  3. Η ταυτότητα OAuth χρησιμοποιείται αποκλειστικά για επαλήθευση -- δεν κοινοποιείται ποτέ με την κοινότητα ή άλλους χρήστες.

Τελικά σημεία API

POST /evaluate

Υποβολή δημοσίευσης για αξιολόγηση κινδύνου. Επιστρέφει την υπολογισμένη βαθμολογία κινδύνου και το απαιτούμενο επίπεδο πρόκλησης.

POST /challenge/verify

Υποβάλετε το αποτέλεσμα μιας ολοκληρωμένης πρόκλησης (διακριτικό OAuth, λύση CAPTCHA ή και τα δύο) για επαλήθευση.

GET /iframe/:sessionId

Επιστρέφει μια ενσωματωμένη σελίδα HTML που αποδίδει την κατάλληλη διεπαφή χρήστη πρόκλησης για τη συγκεκριμένη περίοδο λειτουργίας.

Περιορισμός ποσοστού

Τα όρια τιμών εφαρμόζονται δυναμικά με βάση την ηλικία και τη φήμη του συγγραφέα. Οι νεότεροι ή χαμηλότερης φήμης συγγραφείς αντιμετωπίζουν αυστηρότερα όρια, ενώ οι καθιερωμένοι συγγραφείς απολαμβάνουν πιο γενναιόδωρα όρια. Αυτό αποτρέπει τις πλημμύρες ανεπιθύμητων μηνυμάτων χωρίς να τιμωρεί τους αξιόπιστους συμμετέχοντες.

Δίκτυο ευρετηρίου φόντου

Ο διακομιστής εκτελεί ένα ευρετήριο φόντου που ανιχνεύει συνεχώς το δίκτυο για να δημιουργήσει και να διατηρήσει δεδομένα φήμης συγγραφέα. Αυτά τα δεδομένα τροφοδοτούνται απευθείας στον αγωγό βαθμολόγησης κινδύνου, επιτρέποντας στο σύστημα να αναγνωρίζει επαναλαμβανόμενους συμμετέχοντες καλής πίστης σε όλες τις κοινότητες.

Απόρρητο

Το Spam Blocker έχει σχεδιαστεί με γνώμονα το απόρρητο:

  • Οι ταυτότητες OAuth χρησιμοποιούνται μόνο για επαλήθευση πρόκλησης και δεν αποκαλύπτονται ποτέ στις κοινότητες.
  • Οι διευθύνσεις IP επιλύονται σε μόνο κωδικούς χώρας. Οι πρωτογενείς IP δεν αποθηκεύονται ούτε κοινοποιούνται.

Βάση δεδομένων

Ο διακομιστής χρησιμοποιεί SQLite (μέσω better-sqlite3) για τοπική διατήρηση των δεδομένων φήμης, της κατάστασης περιόδου λειτουργίας και της διαμόρφωσης.