当前位置: 首页 > 面试题库 >

您如何实现良好的亵渎过滤器?

易博文
2023-03-14
问题内容

我们中的许多人都需要处理用户输入,搜索查询以及输入文本可能包含亵渎或不受欢迎语言的情况。通常,这需要过滤掉。

在哪里可以找到各种语言和方言的咒骂单词的好清单?

是否有API可供包含良好列表的来源使用?还是仅使用某些参数简单地说“是的干净”或“没有这个脏”的API?

有什么好的方法可以捕获试图欺骗系统的人员,例如a $$,azz或a55?

如果您提供PHP解决方案,则可以加分。:)

编辑:回答说只是避免程序性问题的答案:

我认为,例如当用户可以使用公共图像搜索来查找添加到敏感社区池中的图片时,就可以使用这种过滤器。如果他们可以搜索“阴茎”,那么他们可能会得到很多照片。如果我们不想要这样的图片,那么虽然公认这不是万无一失的方法,但最好不要使用单词作为搜索词。首先获取单词列表是真正的问题。

因此,我实际上指的是一种找出单个令牌是否脏的方法,然后直接禁止它。我不会像完全搞笑的“长颈长颈鹿”参考文献那样阻止这种情绪。您无能为力。:)


问题答案:

底线:最终,对于您实施的任何系统,绝对没有替代人为检查的(无论是同行还是其他方式)。可以随意实施一个基本工具来摆脱偷渡行为,但是对于确定的巨魔,您绝对必须使用基于非算法的方法。

一个消除匿名性并引入问责制(Stack Overflow做得很好的系统)的系统也很有用,特别是为了帮助对抗John
Gabriel的GIFT

您还询问了在哪里可以找到亵渎列表,从这里开始-
一个要检查的开源项目是Dansguardian-检查其默认亵渎列表的源代码。您还可以为代理下载其他第三方短语列表,这可能对您有所帮助。

编辑问题以进行编辑:
感谢您对要执行的操作的说明。在这种情况下,如果您只是尝试做一个简单的单词过滤器,则有两种方法可以实现。一种方法是使用您要检查的所有禁止短语创建一个长的正则表达式,而只用它进行正则表达式查找/替换。正则表达式如:

$filterRegex = "(boogers|snot|poop|shucks|argh)"

然后使用preg_match()在您的输入字符串上运行它,以全面测试匹配项,

或preg_replace()将其清空。

您也可以使用数组而不是单个长的正则表达式来加载这些函数,对于长单词列表,它可能更易于管理。

您还添加了:“首先 获取单词列表是真正的问题。
”-除了以前的Dansgaurdian链接以外,您可能会发现这个方便的458个单词的.zip很有帮助。



 类似资料:
  • 问题内容: 我们希望为我们的用户提供过滤亵渎行为的选项。假设我们认为猫,狗和美洲驼这两个词是亵渎的。编写一个程序,该程序从键盘读取一个字符串,并测试该字符串是否包含我们亵渎的单词之一。您的程序应该找到像cAt这样的单词,只是大小写不同。 尝试: 由于某种原因它在强调,所以我不能运行它。我究竟做错了什么? 我不允许使用:for,while和array。我们还没有到那些。我只允许使用:布尔值,开关和i

  • 问题内容: 当实现具有多个属性的类时(例如下面的玩具示例),处理哈希的最佳方法是什么? 我认为和应该是一致的,但是如何实现能够处理所有属性的适当的哈希函数呢? 问题答案: 对于相等的对象应返回相同的值。它也不应在对象的整个生命周期内发生变化。通常,您只为不可变的对象实现它。 一个简单的实现就是公正。这始终是正确的,但效果很差。 您的解决方案,返回一个属性元组的哈希,是很好的。但是请注意,您无需列出

  • 本文向大家介绍Spring MVC过滤器-登录过滤的代码实现,包括了Spring MVC过滤器-登录过滤的代码实现的使用技巧和注意事项,需要的朋友参考一下 一个非常简单的登录权限拦截器,具体代码如下: 以下代码是继承OncePerRequestFilter实现登录过滤的代码: 写完过滤器后,需要在web.xml中进行配置: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教

  • 示例此链接 有人能帮忙吗?我想用马根托的方式来完成...

  • 我是JWT的新手。由于我是万不得已才来到这里的,所以网上没有多少信息。我已经使用spring会话开发了一个使用Spring Security性的Spring Boot应用程序。现在,我们将转向JWT,而不是Spring课程。我发现很少有链接,现在我可以验证用户身份并生成令牌。现在困难的部分是,我想创建一个过滤器,它将对服务器的每个请求进行身份验证, 过滤器将如何验证令牌?(仅验证签名就足够了?)