防止SQL注入和跨站脚本攻击



public class SecurityCommLocalUtil {

// 防范跨站脚本攻击应该检查以下特殊字符
public static String checkHtmlEncode(String sText) {

if (null == sText || sText.length() < 1)
return "";

sText = sText.replaceAll("&", "&");
sText = sText.replaceAll("#", "#");
sText = sText.replaceAll("’", "&quote;");
sText = sText.replaceAll("\"", "&quote;");
sText = sText.replaceAll("<", "<");
sText = sText.replaceAll(">", ">");

return sText;
}

/**
* 根据传入参数进行SQL注入处理
*
* @param param
* 需要过滤的字符串
* @return 字符串
*/
public static String checkSQLImmit(String param) {
if (null != param && param.length() > 0) {
String[] checkstrLower = new String[] { "select ", "and ", "or ",
"update ", "delete ", "insert ", " sysibm", ";", " dual",
" declare", "/*", " systables", "length ", " substr", "'", "<",
">", "`" };

String[] checkstrUpper = new String[] { "SELECT ", "AND ", "OR ",
"UPDATE ", "DELETE ", "INSERT ", " SYSIBM", ";", " DUAL",
" DECLARE", "/*", " SYSTABLES", "LENGTH ", " SUBSTR", "'", "<",
">", "`" };

for (String check : checkstrLower) {
if (param.indexOf(check) != -1) {
Pattern p = Pattern
.compile(check, Pattern.CASE_INSENSITIVE);
param = p.matcher(param).replaceAll(" ");
}
}
for (String check : checkstrUpper) {
if (param.indexOf(check) != -1) {
Pattern p = Pattern
.compile(check, Pattern.CASE_INSENSITIVE);
param = p.matcher(param).replaceAll(" ");
}
}

}

return param;
}
}


在jsp页面中用该方法包裹request.getAttribute()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值