Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript过滤垃圾邮件的最佳方法是什么?_Javascript_Artificial Intelligence_Greasemonkey_Spam_Spam Prevention - Fatal编程技术网

用JavaScript过滤垃圾邮件的最佳方法是什么?

用JavaScript过滤垃圾邮件的最佳方法是什么?,javascript,artificial-intelligence,greasemonkey,spam,spam-prevention,Javascript,Artificial Intelligence,Greasemonkey,Spam,Spam Prevention,我最近受到启发,为我使用的几个容易产生垃圾邮件的网站(特别是在评论中)编写了JavaScript格式的垃圾邮件过滤器。在考虑如何进行这项工作时,我意识到我有几个选择,每个都有利弊我的目标是扩展我创建的列表,并希望确定使用JavaScript过滤客户端垃圾邮件的最佳方法。 至于是什么让垃圾邮件过滤器成为“最佳”,我想说的是以下标准: 最准确 最不易受到攻击 最快的 最透明 另外,请注意,我正在尝试使用Greasemonkey用户脚本过滤非我网站上已经存在的内容。换句话说,我无法阻止垃圾邮件;我

我最近受到启发,为我使用的几个容易产生垃圾邮件的网站(特别是在评论中)编写了JavaScript格式的垃圾邮件过滤器。在考虑如何进行这项工作时,我意识到我有几个选择,每个都有利弊我的目标是扩展我创建的列表,并希望确定使用JavaScript过滤客户端垃圾邮件的最佳方法。

至于是什么让垃圾邮件过滤器成为“最佳”,我想说的是以下标准:

  • 最准确
  • 最不易受到攻击
  • 最快的
  • 最透明
另外,请注意,我正在尝试使用Greasemonkey用户脚本过滤非我网站上已经存在的内容。换句话说,我无法阻止垃圾邮件;我只能过滤它。

到目前为止,我试图列出各种方法及其缺点和优点:


基于规则的过滤器:

它的作用:根据分数,通过给不同的标准(即所有大写字母、所有非字母数字等)分配一个分值,对消息进行“分级”,消息将被丢弃或保留

好处:

  • 易于实现
  • 大部分是透明的
缺点:

  • 透明-通常很容易对代码进行反向工程以发现规则,从而生成无法提取的消息
  • 难以平衡的点值(误报)
  • 可能很慢;必须对每条消息执行多个规则,很多时候使用正则表达式
  • 在客户端环境中,需要服务器交互或用户交互来更新规则
贝叶斯过滤:

它的作用:分析词频(或三元图频率),并将其与训练过的数据进行比较

好处:

  • 不需要制定规则
  • 快速(相对)
  • 更难进行逆向工程
缺点:

  • 需要有效的培训
  • 经过培训的数据必须仍然可以被JavaScript访问;通常以人类可读的JSON、XML或平面文件的形式
  • 数据集可能变得相当大
  • 设计拙劣的过滤器很容易与帮助降低垃圾邮件等级的常用词混淆
  • 以前从未见过的单词无法准确分类;有时会导致整个消息的分类不正确
  • 在客户端环境中,需要服务器交互或用户交互来更新规则
贝叶斯过滤-服务器端:

它的作用:通过将每条消息提交到远程服务器进行分析,在服务器端应用贝叶斯过滤

好处:

  • 常规贝叶斯过滤的所有好处
  • 培训数据不会透露给用户/逆向工程师
缺点:

  • 交通拥挤
  • 仍然容易受到不寻常词语的攻击
  • 仍然容易添加常用词以减少空间性
  • 服务本身可能被滥用
  • 为了训练分类器,可能需要允许用户提交垃圾邮件样本进行训练。攻击者可能滥用此服务
黑名单:

它的作用:将一组条件应用于消息或消息的某些属性。如果一个或多个(或特定数量的)条件匹配,则消息将被拒绝。与基于规则的过滤非常相似,请参见其说明了解详细信息

验证码等:

对于这种类型的应用不可行。我正在尝试将这些方法应用于已经存在的站点。Greasemonkey将用于此操作;我不能在别人安装我的脚本之前不需要验证码的地方开始要求验证码


谁能帮我填空吗?谢谢,

没有“最佳”方法,特别是对于所有用户或所有情况

保持简单:

  • 让GM脚本在开始时隐藏所有包含链接的评论,或者可能是普遍的坏话(F*ck、长老会等等)
  • 然后,脚本联系您的服务器,让服务器根据X标准判断每个评论(更多信息,见下文)
  • 根据服务器响应显示或隐藏注释。在超时的情况下,根据用户首选项设置显示或显示(“当筛选服务器关闭时要做什么?(显示/隐藏带有链接的注释))
  • GM脚本就是这样;其余的由服务器处理
  • 至于实际的服务器/筛选标准…
    最重要的是,不要以为你能猜出用户想要过滤什么!这会因人而异,甚至因情绪而异

    将服务器设置为使用坏单词、坏链接目的地(.ru和.cn域)和公共垃圾邮件过滤服务的组合


    最重要的是为用户提供一些方法来选择和理想地调整他们所应用的内容。

    所以你的目标是在用户浏览器中为没有足够内置保护的站点添加垃圾邮件检查?这样你可以动态地从站点中删除评论。有趣的是,尽管我不确定有多少站点会从中受益m it。我真正想做的是创建一个平台来实现这一点。这是第一步。然后我会将它应用到不同的网站上。Facebook是我的主要目标之一,因为大多数评论都是垃圾邮件。垃圾邮件过滤器在后端添加起来很简单。如果有问题的网站管理员懒得这么做,你最好不要使用u首先唱一下这个网站。为什么要奖励一个差劲的网站为他们工作呢?奇怪的是你提到Facebook,因为我从来没有在那里看到过垃圾邮件。你可能只是想和垃圾邮件发送者解除朋友关系。。。