স্প্যাম ব্লকার
স্প্যাম ব্লকার হল একটি কেন্দ্রীভূত স্প্যাম সনাক্তকরণ পরিষেবা যা আগত প্রকাশনাগুলিকে মূল্যায়ন করে এবং ঝুঁকির স্কোর নির্ধারণ করে৷ এটি দুটি প্যাকেজ নিয়ে গঠিত:
@bitsocial/spam-blocker-server-- HTTP সার্ভার যা মূল্যায়ন এবং চ্যালেঞ্জ API হোস্ট করে।@bitsocial/spam-blocker-challenge-- একটি হালকা ওজনের ক্লায়েন্ট প্যাকেজ যা সম্প্রদায়গুলি মূল্যায়নের জন্য প্রকাশনা পাঠাতে একত্রিত হয়৷
সোর্স কোড: github.com/bitsocialnet/spam-blocker
কিভাবে ঝুঁকি স্কোরিং কাজ করে
/evaluate এন্ডপয়েন্টে জমা দেওয়া প্রতিটি প্রকাশনা একটি সংখ্যাসূচক ঝুঁকি স্কোর পায়। স্কোর হল বেশ কয়েকটি সংকেতের ওজনযুক্ত সমন্বয়:
| সংকেত | বর্ণনা |
|---|---|
| হিসাব বয়স | নতুন অ্যাকাউন্টগুলি উচ্চ ঝুঁকির স্কোর পায়। |
| কর্ম | সঞ্চিত সম্প্রদায় কর্ম ঝুঁকি হ্রাস করে। |
| লেখকের খ্যাতি | ব্যাকগ্রাউন্ড নেটওয়ার্ক ইনডেক্সার দ্বারা সংগৃহীত রেপুটেশন ডেটা। |
| বিষয়বস্তু বিশ্লেষণ | পাঠ্য-স্তরের হিউরিস্টিকস (লিঙ্কের ঘনত্ব, পরিচিত স্প্যাম প্যাটার্ন ইত্যাদি)। |
| বেগ | একই লেখকের দ্রুত ক্রমাগত পোস্ট ঝুঁকি বাড়ায়। |
| আইপি বুদ্ধিমত্তা | দেশ-স্তরের ভূ-অবস্থান এবং হুমকি-ফিড লুকআপ। শুধুমাত্র দেশের কোড সংরক্ষণ করা হয় -- অপরিশোধিত IP ঠিকানা সম্প্রদায়ের সাথে ভাগ করা হয় না। |
স্তর থ্রেশহোল্ড
ঝুঁকির স্কোর চারটি কনফিগারযোগ্য স্তরের একটিতে মানচিত্র যা পরবর্তী কি হবে তা নির্ধারণ করে:
- স্বয়ংক্রিয়ভাবে গ্রহণ -- স্কোর যথেষ্ট কম যে প্রকাশনাটি কোনো চ্যালেঞ্জ ছাড়াই অনুমোদিত।
- OAuth-পর্যাপ্ত -- লেখককে এগিয়ে যেতে একটি OAuth যাচাইকরণ সম্পূর্ণ করতে হবে।
- OAuth-plus-more -- OAuth একা যথেষ্ট নয়; অতিরিক্ত যাচাইকরণ (যেমন, ক্যাপচা) প্রয়োজন৷
- অটো-প্রত্যাখ্যান -- স্কোর খুব বেশি; প্রকাশনা সরাসরি প্রত্যাখ্যান করা হয়.
সমস্ত থ্রেশহোল্ড মান সম্প্রদায়ের জন্য কনফিগারযোগ্য।
চ্যালেঞ্জ ফ্লো
যখন একটি প্রকাশনা একটি স্তরে পড়ে যার জন্য যাচাইকরণের প্রয়োজন হয়, তখন চ্যালেঞ্জ প্রবাহ শুরু হয়:
- লেখককে প্রথমে OAuth (GitHub, Google, Twitter, এবং অন্যান্য সমর্থিত প্রদানকারী) এর মাধ্যমে প্রমাণীকরণ করতে বলা হয়।
- OAuth একা অপর্যাপ্ত হলে (স্তর 3), ক্লাউডফ্লেয়ার টার্নস্টাইল দ্বারা চালিত একটি ক্যাপচা ফলব্যাক উপস্থাপন করা হয়।
- OAuth পরিচয় শুধুমাত্র যাচাইকরণের জন্য ব্যবহার করা হয় -- এটি সম্প্রদায় বা অন্যান্য ব্যবহারকারীদের সাথে **কখনই ভাগ করা হয় না।
এপিআই এন্ডপয়েন্ট
POST /evaluate
ঝুঁকি মূল্যায়নের জন্য একটি প্রকাশনা জমা দিন। গণনাকৃত ঝুঁকি স্কোর এবং প্রয়োজনীয় চ্যালেঞ্জ স্তর প্রদান করে।
POST /challenge/verify
যাচাইয়ের জন্য একটি সম্পূর্ণ চ্যালেঞ্জের ফলাফল (OAuth টোকেন, ক্যাপচা সমাধান, বা উভয়) জমা দিন।
GET /iframe/:sessionId
একটি এমবেডযোগ্য HTML পৃষ্ঠা ফেরত দেয় যা প্রদত্ত সেশনের জন্য উপযুক্ত চ্যালেঞ্জ UI রেন্ডার করে।
হার সীমাবদ্ধতা
লেখকের বয়স এবং খ্যাতির উপর ভিত্তি করে হারের সীমা গতিশীলভাবে প্রয়োগ করা হয়। নতুন বা নিম্ন-খ্যাতিসম্পন্ন লেখকরা কঠোর সীমার সম্মুখীন হন, যখন প্রতিষ্ঠিত লেখকরা আরও উদার থ্রেশহোল্ড উপভোগ করেন। এটি বিশ্বস্ত অংশগ্রহণকারীদের শাস্তি না দিয়ে স্প্যাম বন্যা প্রতিরোধ করে৷
ব্যাকগ্রাউন্ড নেটওয়ার্ক ইনডেক্সার
সার্ভারটি একটি ব্যাকগ্রাউন্ড ইনডেক্সার চালায় যা লেখকের খ্যাতি ডেটা তৈরি ও বজায় রাখতে ক্রমাগত নেটওয়ার্ক ক্রল করে। এই ডেটা সরাসরি ঝুঁকি স্কোরিং পাইপলাইনে ফিড করে, যা সিস্টেমকে সম্প্রদায় জুড়ে পুনরাবৃত্ত ভাল-বিশ্বাসের অংশগ্রহণকারীদের চিনতে দেয়।
গোপনীয়তা
স্প্যাম ব্লকার গোপনীয়তার কথা মাথায় রেখে ডিজাইন করা হয়েছে:
- OAuth পরিচয় শুধুমাত্র চ্যালেঞ্জ যাচাইকরণের জন্য ব্যবহার করা হয় এবং সম্প্রদায়ের কাছে **কখনই প্রকাশ করা হয় না।
- IP ঠিকানাগুলি **দেশের কোডগুলিতে সমাধান করা হয়; কাঁচা আইপি সংরক্ষণ বা ভাগ করা হয় না।
ডাটাবেস
খ্যাতি ডেটা, সেশন স্টেট এবং কনফিগারেশনের স্থানীয় স্থিরতার জন্য সার্ভারটি SQLite (better-sqlite3 এর মাধ্যমে) ব্যবহার করে।