首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

求正则过滤sql中的要害

2012-08-09 
求正则过滤sql中的关键正则过滤sql中的关键字sql语句中不能包含 update|drop|truncate|alter|set|delete|i

求正则过滤sql中的关键
正则过滤sql中的关键字
sql语句中不能包含 update|drop|truncate|alter|set|delete|insert|exec

[解决办法]

Java code
public static void main(String[] args) {        String reg="[update|drop|truncate|alter|set|delete|insert|exec]*";        String str="update xxx from fff";        String str2="drop xx from dd.";        Pattern p =Pattern.compile(reg);        //        Matcher m=p.matcher(str);        System.out.println(m.matches());        //        m=p.matcher(str2);        System.out.println(m.matches());            }
[解决办法]
[^update]|[^drop]|[^truncate]|[^alter]|[^set]|[^delete]|[^insert]|[^exec]* 手写的没有试。。你试试吧
[解决办法]
Java code
    public static void main(String[] args) throws Exception{        String sql = "update set tab s = 'a'";        Matcher m = Pattern.compile("[update|drop|truncate|alter|set|delete|insert|exec]").matcher(sql);        System.out.println(!m.find());    }
[解决办法]
或者:.*?[update|drop|truncate|alter|set|delete|insert|exec].*?
[解决办法]
你的意思是不是在客户端验证(JAVASCRIPT的正则?)
[解决办法]
javascript校验:

JScript code
function checkSQL(sql){  var allowExt = "update|drop|truncate|alter|set|delete|insert|exec|"; if(allowExt != 0 && allowExt.indexOf(sql + "|") == -1){                  alert("【sql语句中不能包含 update|drop|truncate|alter|set|delete|insert|exec】!");                  return false;              } }
[解决办法]
用jdbc的preparedStatement参数处理,就不用担心关键字的问题啦。。

热点排行