/** 
 | 
 * Copyright (c) 2018 人人开源 All rights reserved. 
 | 
 * 
 | 
 * https://www.renren.io 
 | 
 * 
 | 
 * 版权所有,侵权必究! 
 | 
 */ 
 | 
  
 | 
package com.zt.common.servlet.xss; 
 | 
  
 | 
import org.apache.commons.lang3.StringUtils; 
 | 
  
 | 
import com.zt.common.exception.ErrorCode; 
 | 
import com.zt.common.exception.RenException; 
 | 
  
 | 
/** 
 | 
 * SQL过滤 
 | 
 * @author Mark sunlightcs@gmail.com 
 | 
 */ 
 | 
public class SqlFilter { 
 | 
  
 | 
    /** 
 | 
     * SQL注入过滤 
 | 
     * @param str  待验证的字符串 
 | 
     */ 
 | 
    public static String sqlInject(String str){ 
 | 
        if(StringUtils.isBlank(str)){ 
 | 
            return null; 
 | 
        } 
 | 
        //去掉'|"|;|\字符 
 | 
        str = StringUtils.replace(str, "'", ""); 
 | 
        str = StringUtils.replace(str, "\"", ""); 
 | 
        str = StringUtils.replace(str, ";", ""); 
 | 
        str = StringUtils.replace(str, "\\", ""); 
 | 
  
 | 
        //转换成小写 
 | 
        str = str.toLowerCase(); 
 | 
  
 | 
        //非法字符 
 | 
        String[] keywords = {"master", "truncate", "insert", "select", "deleteLogic", "update", "declare", "alter", "drop"}; 
 | 
  
 | 
        //判断是否包含非法字符 
 | 
        for(String keyword : keywords){ 
 | 
            if(str.indexOf(keyword) != -1){ 
 | 
                throw new RenException(ErrorCode.INVALID_SYMBOL); 
 | 
            } 
 | 
        } 
 | 
  
 | 
        return str; 
 | 
    } 
 | 
} 
 |