6

Son zamanlarda, spam (özellikle yorumlarda) spam'e eğilimli kullandığım bazı web siteleri için JavaScript, Greasemonkey tarzı spam filtreler yazmaktan ilham aldım. Bununla ilgili seçeneklerimi düşünürken, her birinin artı/eksileri olan birkaç seçeneğim olduğunu fark ettim. Bu soruya yönelik amacım, oluşturduğum bu listeyi genişletmek ve umarım, istemci tarafında spam filtrelemenin JavaScript ile en iyi yolunu belirlemektir. Bir spam ben bu kriterler söyleyebilirim, "en iyi" filtre kılan gelinceSpam'i JavaScript ile filtrelemenin en iyi yolu nedir?

:

  • En doğru saldırılara
  • Az savunmasız
  • En hızlı
  • En şeffaf

Ayrıca, lütfen içeriği filtrelemeye çalıştığımı unutmayın. Greasemonkey Userscripts kullanarak benim olmayan web sitelerinde zaten var. Başka bir deyişle, spam'i engelleyemem; Sadece filtreleyebilirim.


Kural tabanlı filtreler: Ne işe yarar

İşte

onların eksikliklerini ve yararlarının yanı sıra çeşitli yöntemler bir listesini derlemek için şimdiye kadar benim girişimidir : "Kriterler", farklı ölçütlere bir nokta değeri atayarak "derecelendirir" (tüm büyük harf, tümü alfasayısal olmayan, vb.). Puana bağlı olarak, mesaj atılır veya saklanır. o diske kodunu ters mühendislik genellikle kolaydır Transparent-

  • :

    Faydaları:

    • Kolay
    • Çoğunlukla şeffaf

    eksiklikler uygulamak kurallar üzerinde ve dolayısıyla alınmayacak mesajlar

  • Denge noktası değerlerini sabitleme (yanlış pozitif)
  • Yavaş olabilir; Birden fazla kural bir çok kez düzenli ifadeler bir istemci tarafı ortamında
  • kullanarak, her iletide yürütülecek olan, sunucu etkileşimi veya kullanıcı etkileşim kurallarını güncellemek için gereklidir

Bayes filtreleme:

İşlevi: kelime frekansı (veya trigram frekansı) Analizleri ve olmuştur ile yetiştirdiği verilerle karşılaştırır.

Faydalar: zanaat kurallarına

  • Gerek
  • Hızlı (nispeten)
  • Sıkı mühendis

eksiklikler tersine çevirmek için:

  • Etkili olması için eğitim gerektirir.
  • Eğitimli verilere hala JavaScript'ten erişilebilmelidir; Genellikle insan tarafından okunabilir JSON, XML veya düz dosyası şeklinde
  • Veri kümesi
  • Kötü tasarlanmış filtreler spamacity notunu düşürmek için ortak kelimelerin iyi bir yardımcı ile karıştırmayın kolay oldukça büyük alabilirsiniz
  • Daha önce görülmemiş kelimeler doğru bir şekilde sınıflandırılamaz; bazen bir istemci tarafı ortamında tüm mesajla
  • hatalı sınıflandırma sonuçlanan sunucu etkileşimi veya kullanıcı etkileşim kurallarını

Bayes filtering- sunucu tarafında güncelleştirmek için gereklidir:

neler Bunu yapar: Her bir iletiyi analiz için uzak bir sunucuya göndererek Bayesian filtreleme sunucusu tarafını uygular.

Faydaları: Düzenli Bayes filtreleme

  • Tüm faydaları
  • Eğitim veriler, kullanıcılara açıklanmaz/geri mühendisleri

eksiklikler:

  • ortak kelimeler ekleyerek için
  • Yine savunmasız rastlanan kelimeler Hala savunmasız Yoğun trafik
  • kullanıcıların istenmeyen örnekleri göndermesine izin istenebilir, Hizmetin kendisi sınıflandırıcı eğitmek için
  • istismar edilebilir spamacity
  • azaltmak için eğitim için. Saldırganlar bu servisi

kara listeye kötüye olabilir:

İşlevi: bir mesaj veya bir kısmı öznitelik için bir dizi kriter uygular. Bir veya daha fazla (veya belirli bir sayıda) kriterle eşleşirse, mesaj reddedilir. kural tabanlı filtreleme gibi bir çok ayrıntı için açıklamalarına bakın.

CAPTCHA'ların ve benzeri: bu tip uygulama için

mümkün değil. Bu yöntemleri zaten var olan sitelere uygulamayı deniyorum. Bunu yapmak için Greasemonkey kullanılacaktır; CAPTCHA'ları, komut dosyamı yüklemeden önce olmadıkları yerlerde gerek duymaya başlayamıyorum.


Herkes boşlukları doldurmama yardım edebilir mi? Teşekkürler,

+0

Bu nedenle, hedefiniz, yeterli korumanın bulunmadığı siteler için kullanıcıların tarayıcısına yönelik spam kontrolü ekliyor mu? Siteden yorumları dinamik olarak kaldırabilirsiniz. İlginç olsa da, kaç sitenin bundan fayda sağlayacağından emin değilim. –

+0

Gerçekten yapmaya çalıştığım şey, buna izin veren bir platform oluşturmak. Bu önce gelir. Sonra farklı sitelere uygulayacağım. Yorumların çoğu spam olduğundan, Facebook birincil hedeflerimden biridir. –

+0

Spam filtreleri arka tarafa eklemek için önemsizdir. Söz konusu sitenin yöneticileri bunu yapmak için fazla tembelse, siteyi kullanmaya başlamaktan daha iyi olursunuz. Neden onlar için işlerini yaparak berbat bir site ödüllendiriyorsunuz? Facebook’tan hiç bahsetmediğin garip bir şey var. Sadece spam gönderenler ile arkadaşlık etmek isteyebilirsiniz ... – Cerin

cevap

2

Özellikle tüm kullanıcılar veya tüm durumlar için "en iyi" yol yoktur.

sade tutun:

  1. başlangıçta GM senaryoyu var bağlantıları ve belki evrensel kötü sözler (F * ck, Presbiteryen, vb) içeren tüm yorumları gizle. ;)
  2. Ardından betik sunucunuzla iletişim kurar ve sunucunun her bir yorumu X ölçütlerine göre değerlendirmesine izin verir (daha fazlası, aşağıda).
  3. Sunucu yanıtını temel alarak yorumları gösterme veya gizleme. Bir zaman aşımı durumunda, bir kullanıcı tercihi ayarına göre göster veya göster ("Filtre sunucusu kapalıyken ne yapmalı?" (Bağlantıları içeren yorumları göster/gizle))
  4. Bu, GM komut dosyası için, diğer sunucu tarafından işlenir. gerçek sunucu/filtreleme kriterlerine gelince

...
En önemlisi bir kullanıcı filtrelenmiş istediğiniz olacağını tahmin edebilirsiniz varsaymak cesaret yok! Bu çılgınca değişir olduğunu kişiden kişiye, hatta ruh halinden ruh haline dönüş:

Kötü sözcükler, kötü link hedefleri kullanmak için sunucuyu kurun. s (.ru ve .cn alan adları) ve genel spam filtreleme hizmetleri.

En önemli şey, kullanıcılara, uygulanmakta olanları seçmeleri ve ideal olarak ayarlamaları için bir yol sunmalarıdır.

+0

"Kötü sözler yok" - George Carlin –