我保留了过滤器,过滤掉了ass
,jerk
等一些被阻止的单词。我有这样的单词列表进行比较,如果存在则阻止。
有些用户使用它们,例如je*k
,f*ck
,因此它们与列表不匹配,并且页面上会显示单词。有没有办法克服这种漏洞?
同样shit
用户使用sh/t
。我怎么处理这个问题?
答案 0 :(得分:3)
如果您要检查单个字词,可以使用levenshtein()
if (!ctype_alpha($text) && levenshtein('shit', $text) === 1) {
//match
}
答案 1 :(得分:1)
这是我在我的评论框架上使用的函数,它加载large list of filters words并使用单词边界替换为*
,在单词列表中我使用{{ 1}}作为通配符,以便不替换像chickenjerk这样的单词,当我检测到漏洞时,只需将其添加到列表中。
*
希望它有所帮助。