package com.xxxpiao.core.member.service.impl.util;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Lazy;
import org.springframework.stereotype.Component;
import com.xxxpiao.common.service.exception.RegisterException;
import com.xxxpiao.common.service.exception.errorcode.MemberErrorTable;
import com.xxxpiao.common.utils.RegexUtils;
/**
* 敏感词处理方法
* @project coreService
* @author szk
* @date 2010-11-27
* Copyright (C) 2010-2012 www.2caipiao.com Inc. All rights reserved.
*/
@Component
@Lazy(value=false)
public class WordCensor {
private static final Logger LOGGER = LoggerFactory.getLogger(WordCensor.class);
/**保存敏感词的列表*/
private static List<String> wordCensor = new ArrayList<String>();
/**过滤词文件名*/
private static final String FILTER_FILE_NAME = "sensitivewords.txt";
static{
ClassLoader loader = WordCensor.class.getClassLoader();
InputStream wordFilterInput = loader.getResourceAsStream(FILTER_FILE_NAME);
String line;
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(wordFilterInput, "UTF-8"));
while ((line = reader.readLine()) != null) {
if (StringUtils.isNotBlank(line)){
wordCensor.add(line);
}
}
} catch (FileNotFoundException e) {
LOGGER.warn("敏感词文件没有找到:"+e.getMessage());
} catch (IOException e) {
LOGGER.warn("读取敏感词文件IO异常:"+e.getMessage());
}finally{
IOUtils.closeQuietly(reader);
IOUtils.closeQuietly(wordFilterInput);
}
}
/**
* 敏感词验证
*
* @param account
* @create_time 2010-12-2 上午11:03:01
*/
public static void validwordcensor(String account) {
List<String> list = wordCensor;
if (list != null) {
for (String key : list) {
if (RegexUtils.isChinese(key)) {
if (account.indexOf(key) != -1) {
throw new RegisterException(MemberErrorTable.ACCOUNT_ILLEGALITY);
}
} else {
if (account.equals(key)) {
throw new RegisterException(MemberErrorTable.ACCOUNT_ILLEGALITY);
}
}
}
}
}
/**
* 将敏感字符替换为*
*
* 2011-6-23
*/
public static String replaceWordCensor(String text){
List<String> list = wordCensor;
String replacedStr = text;
if (text!=null && list != null) {
for (String key : list) {
if (text.indexOf(key)!=-1) {
replacedStr = replacedStr.replaceAll(key, "*********");
}
}
}
return replacedStr;
}
}
分享到:
相关推荐
在IT行业中,尤其是在网络安全和数据保护领域,"敏感词汇组"是一个重要的概念。这个话题主要涉及到如何在Web应用程序中有效地实现敏感词过滤功能,以防止恶意用户利用这些词汇进行攻击或者发布不适当的内容。以下是...
2. **复杂性**:鼓励用户使用大小写字母、数字和特殊字符的组合,避免使用常见词汇。 3. **不包含个人信息**:禁止使用生日、姓名等容易被猜到的信息。 4. **唯一性**:确认密码不是已有的用户名或其他敏感信息。 ...
4. **评论系统**:限制用户输入的字符数,过滤敏感词汇,确保内容的合规性。 综上所述,jQuery验证器插件是前端开发中不可或缺的工具,它可以帮助我们构建更健壮、更用户友好的表单验证机制。合理运用它的各项功能...
SystemC的流程和应用方面,包括系统描述、基本建模结构、事件和动态敏感性、进程定义、细化以及验证等。在细化方面,TLM可以细化为RTL模型。SystemC在功能验证方面提供了强大的工具和库,比如一般结构、激励生成、...
该插件的作用类似于垃圾信息预处理机制,在用户提交信息之前可以先通过此插件对其进行检测,如发现敏感词汇及需屏蔽词汇的话可以记录这些词汇并且进一步采取后续逻辑处理。 2.插件说明: 插件接受一个用户输入的...
它可能需要限制长度,禁止使用特殊字符,不允许为空,且不能包含敏感词汇。通过正则表达式可以有效地实现这些规则,例如,只允许字母、数字和下划线,长度在4到20个字符之间。 2. **密码验证**:密码安全是用户账户...
同时,也可以检查评论中是否包含敏感词汇,避免不良信息的传播。 "使用说明.txt"文件可能包含了如何在实际项目中应用这些验证方法的具体步骤和示例代码,包括如何绑定事件,如何编写验证逻辑,以及如何展示错误提示...
MySQL数据库在网络验证中扮演了关键角色,存储用户的用户名、密码等敏感信息,通过安全的数据库连接,客户端向服务器发送验证请求,服务器端的PHP脚本接收到请求后,从数据库检索对应的数据进行匹配。 接下来,PHP...
为了防止敏感词汇的出现,可以设置一个关键字过滤器。 ```javascript function test() { if ((a.b.value.indexOf("***") == 0) || (a.b.value.indexOf("****") == 0)) { alert("包含敏感词汇"); a.b.focus(); ...
3. **结果反馈:**如果包含敏感词汇,则弹出提示信息,并将焦点设置回输入框。 #### 八、两次输入密码是否相同 **知识点概述:** 此功能用于确保用户两次输入的密码一致,有助于提高账户安全性。 **示例代码:** `...
alert("输入包含敏感词汇!"); a.b.focus(); return false; } } ``` 此代码段会在用户尝试提交表单时检查输入是否包含指定的关键字,如果包含,则显示警告信息,并阻止表单提交。 #### 8. 密码验证:确认密码...
在PHP编程中,有时我们需要对用户输入的数据进行过滤,以防止恶意代码或敏感词汇的出现。这在处理用户提交的内容,如评论、论坛帖子或搜索查询时尤其重要。标题"PHP对特殊词汇的过滤"涉及的就是这个关键的安全实践。...
这通常包括检查用户名是否已被其他人使用,是否包含特殊字符或敏感词汇,以及长度限制。`checkusername.php`可能就是实现这个功能的脚本,它可能通过查询数据库来检查用户名的可用性。 3. **验证码(Verification ...
在论坛或评论区,可能会遇到需要屏蔽某些敏感词汇的情况。 **代码示例**: ```javascript function test() { if ((a.b.value.indexOf("***") != -1) || (a.b.value.indexOf("****") != -1)) { alert("输入包含了...
在IT行业中,易语言是一种基于汉语词汇编程的编程环境,旨在降低编程的门槛,使得更多的人能够轻松地学习和编写程序。"易语言界面设计-登录验证"这一主题聚焦于如何利用易语言来构建用户界面,并实现登录验证功能。...
本教程的目标是教会MDeamon用户如何设置内容过滤器,从而自动识别并处理包含特定敏感词汇的邮件。具体而言,我们将通过设置规则来拦截含有“工资”、“薪酬”和“年终奖”等关键词的邮件,并向发件人发送通知后删除...
alert("不允许输入敏感词汇"); a.b.focus(); return false; } } ``` 8. 密码一致性验证:确保用户两次输入的密码一致,可以使用以下方法: ```html ()"> 提交"> function checkPasswordMatch() { var ...