问题标签 [spam-prevention]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
9355 浏览

python - 用于 Python 的贝叶斯垃圾邮件过滤库

我正在寻找一个执行贝叶斯垃圾邮件过滤的 Python 库。我查看了 SpamBayes 和 OpenBayes,但两者似乎都没有维护(我可能错了)。

谁能推荐一个实现贝叶斯垃圾邮件过滤的优秀 Python(或 Clojure、Common Lisp,甚至 Ruby)库?

提前致谢。

澄清:我实际上是在寻找贝叶斯垃圾邮件分类器,而不一定是垃圾邮件过滤器。我只想使用一些数据来训练它,然后告诉我某些给定的数据是否是垃圾邮件。很抱歉有任何混淆。

0 投票
1 回答
730 浏览

perl - 删除被 SpamAssassin 标记为垃圾邮件的最直接的方法是什么?

我在 Ubuntu Intrepid 上,使用 Postfix 和 SpamAssassin。我见过使用 procmail 的方法(如建议的 @ Apache),但我正在寻找一种不使用 procmail 的解决方案。

这是一个编程问题,因为正确的答案将是完成手头任务的某种形式的代码(我对否定投票的回应)。

更新情况:我使用了本教程,效果非常好:https ://help.ubuntu.com/community/PostfixAmavisNew

0 投票
1 回答
1059 浏览

spam-prevention - 用于垃圾邮件过滤的贝叶斯网络

我想使用贝叶斯网络机制进行垃圾邮件过滤。您认为它应该如何成为正确的网络拓扑?那么朴素贝叶斯模型呢?(朴素贝叶斯模型有时被称为贝叶斯分类器)

0 投票
4 回答
298 浏览

security - OpenID 是垃圾邮件发送者的有利目标?

由于 OpenID 的性质,它不是垃圾邮件发送者的有利目标吗?对于初学者,您可以在任何站点上创建一个 OpenID 帐户并在任何其他站点上使用它,这意味着如果论坛假定登录的用户可以信任,我可以登录到论坛并写几千个帖子。

您是否同意 OpenID 对垃圾邮件发送者有利可图?OpenID 预计会受到冲击吗?

0 投票
4 回答
7567 浏览

javascript - 好的非侵入式反垃圾邮件混淆器?

我正在尝试使用 JavaScript 电子邮件混淆器来减少网站上列出的电子邮件中出现垃圾邮件的机会。现在我有一个基于 JavaScript 的混淆器,它使用 HTML 编码和 JavaScript 的组合将混淆的电子邮件透明地转换为普通电子邮件。

我要做的是:

将链接中 href 的“mailto:”部分格式化为 HTML 编码,如:

我还对电子邮件进行了编码,将@符号替换为(a),以便电子邮件内容如下:

然后,我使用一些 JavaScript 来破译电子邮件中具有此(a)标志的所有 mailto 链接,并将它们转换为@页面加载。

这工作得很好。对于使用启用了 JavaScript 的浏览器的人来说,他们会看到一切正常。对于没有启用 JavaScript 的人,我认识的每个邮件客户端都会认为电子邮件地址无效,但是用户应该能够推断出更正符号所需的内容。

我想知道是否有更好的(侵入性较小(或充其量不是侵入性很强)但更能抵抗垃圾邮件发送者)的方式来混淆网页上的电子邮件。

与任何类型的混淆一样,如果人或计算机可以轻松地对其进行去混淆,那么垃圾邮件发送者也可以轻松地做到这一点。正因为如此,我并不期待一个万无一失的混淆,但是我很想知道还有什么其他建议。搜索 Google 并没有发现任何我认为比当前解决方案更好的解决方案。我想知道是否还有其他好的选择。

0 投票
13 回答
8221 浏览

language-agnostic - 检测文本字符串中的(淘气或漂亮)URL 或链接

如何检测(使用正则表达式或启发式)文本字符串(如评论)中的网站链接?

目的是防止垃圾邮件。HTML 被剥离,所以我需要检测复制和粘贴的邀请。 垃圾邮件发送者发布链接应该不经济,因为大多数用户无法成功访问该页面。我想要关于最佳实践的建议、参考或讨论。

一些目标:

  • 像格式良好的 URL 一样容易实现的目标 ( http://some-fqdn/some/valid/path.ext)
  • URL 但没有http://前缀(即有效的 FQDN + 有效的 HTTP 路径)
  • 任何其他有趣的事情

当然,我正在阻止垃圾邮件,但是可以使用相同的过程来自动链接文本。

想法

这是我在想的一些事情。

  • 内容是母语散文,所以我可以在检测中触发快乐
  • 我应该先去掉所有空格来捕捉“ www .example.com”吗?普通用户会知道自己删除空间,还是让任何浏览器“按我的意思做”并为您剥离它?
  • 也许多次传球是一个更好的策略,扫描:
    • 格式正确的 URL
    • 所有非空格后跟“。” 后跟任何有效的 TLD
    • 还要别的吗?

相关问题

我已经阅读了这些内容,它们现在记录在此处,因此您可以根据需要在这些问题中引用正则表达式。

更新和总结

哇,我在这里列出了一些非常好的启发式方法!对我来说,最划算的是以下几点的综合:

  1. @Jon Bright 的 TLD 检测技术(一个很好的防御瓶颈)
  2. 对于那些可疑的字符串,按照@capar 将点替换为点状字符
  3. @Sharkey 的下标 · 是一个不错的点状字符。(即“ · ”)。· 也是一个单词边界,因此很难随意复制和粘贴。

这应该使垃圾邮件发送者的每千次展示费用足够低以满足我的需求;“标记为不适当”的用户反馈应该可以捕捉到其他任何东西。列出的其他解决方案也非常有用:

  • 去掉所有虚线四边形(@Sharkey 对他自己的回答的评论)
  • @Sporkmonger 对客户端 Javascript 的要求,它将所需的隐藏字段插入到表单中。
  • ping URL 服务器端以确定它是否是一个网站。(也许我可以通过 SpamAssassin 或其他贝叶斯过滤器按照@Nathan 运行 HTML ..)
  • 查看 Chrome 智能地址栏的来源,看看 Google 使用了哪些巧妙的技巧
  • 调用 OWASP AntiSAMY 或其他 Web 服务进行垃圾邮件/恶意软件检测。
0 投票
25 回答
111408 浏览

spam-prevention - 以编程方式检测色情图片的最佳方法是什么?

Akismet 在检测垃圾评论方面做得非常出色。但如今评论并不是垃圾邮件的唯一形式。如果我想要 akismet 之类的东西来自动检测社交网站上的色情图片,让用户上传他们的照片、头像等怎么办?

已经有一些基于图像的搜索引擎以及人脸识别的东西可用,所以我假设它不会是火箭科学,它可以完成。但是,我不知道这些东西是如何工作的,如果我想从头开始开发它应该如何去做。

我应该如何开始?

是否有任何开源项目可以解决这个问题?

0 投票
4 回答
1983 浏览

c# - 在贝叶斯垃圾邮件过滤器中计算令牌成为垃圾邮件的概率

我最近写了一个贝叶斯垃圾邮件过滤器,我使用Paul Graham 的文章 Plan for Spam我在 codeproject 上找到的 C# 中的实现作为创建我自己的过滤器的参考。

我刚刚注意到 CodeProject 上的实现使用唯一令牌的总数来计算令牌成为垃圾邮件的概率(例如,如果 ham 语料库总共包含 10000 个令牌但 1500 个 unqiue 令牌,则 1500 用于计算概率为 ngood ),但在我的实现中,我使用了 Paul Graham 的文章中提到的帖子数量,这让我想知道其中哪一个在计算概率时应该更好:

  1. 帖子计数(如 Paul Graham 的文章中所述)
  2. 唯一令牌总数(在 codeproject 的实现中使用)
  3. 令牌总数
  4. 包含的令牌总数(即 b + g >= 5 的那些令牌)
  5. 包含的唯一令牌总数
0 投票
3 回答
648 浏览

email - 电子邮件混淆问题

是的,我知道有人问过这个问题并回答了这个问题,但是我对此有一些具体的问题,我觉得在那个线程上不清楚,我也不想在另一个线程的洗牌中迷失方向。

以前的帖子说,像 Facebook 那样将电子邮件地址呈现为图像对于商业/专业网站来说是矫枉过正和不专业的用户体验。似乎普遍的共识是使用 JavaScript document.write 解决方案,使用 html 实体或其他方法来分解和/或使简单的机器人无法读取字符串。我正在构建的应用程序甚至不需要“mailto:”功能,我只需要显示电子邮件地址。此外,这是一个商业 Web 应用程序,因此它需要看起来/行为尽可能专业。以下是我的问题:

  1. 如果我走 document.write 路线并传递每个字符的 html 实体版本,是否没有足够复杂的网络爬虫来执行 javascript 并拉出呈现的文本?或者这被认为是最佳实践并且完全(或几乎完全)垃圾邮件发送者证明?

  2. 图像解决方案有什么不专业的?如果 Facebook 是世界上流量最高的应用程序之一,而且根本不是由业余爱好者运行的,为什么他们的方法在关于这个主题的另一个线程中完全被驳回?

  3. 如果您的回答(如在另一个线程中)是不为这个问题烦恼并让用户的垃圾邮件过滤器完成所有工作,请解释您为什么会有这种感觉。我们正在展示用户提供给我们的电子邮件地址,我觉得有责任尽我所能保护他们。如果您认为这是不必要的,请解释原因。

谢谢。

0 投票
8 回答
455 浏览

spam-prevention - 启发式发现垃圾邮件发送者/机器人(在论坛、博客等中)

我能想到的方法是:

  1. 测量动作之间的时间。
  2. 比较帖子的内容(如果它们彼此太相似),或者更好的是,只比较发布的链接。
  3. 检查用户活跃的一段时间内的分布(如果用户活跃,比如每小时发布一次,持续一周,那么我们这里要么有超人,要么有机器人)。
  4. 预计会有一些特殊活动:就像在 stackoverflow 中一样,我希望用户按下他们的用户名链接(顶部中间)来查看他们的新答案、评论、问题等。
  5. (由 chakrit 添加)帖子中的链接数。
  6. 不是启发式的。使用一些异步 JS 进行用户登录。(只是让机器人程序员的生活变得更加艰难)。
  7. (由 Alekc 添加)不是启发式的。用户代理值。
  8. 而且,我怎么会忘记 Google 的方法(Will Hartung 提到过)。让用户能够将某人标记为垃圾邮件,足够的垃圾邮件投票意味着这是一个垃圾邮件用户。(计算什么是足够的用户,是这里的工作)。

还有什么想法吗?