java怎样过滤危险字符
java怎样过滤危险字符,关于安全问题
------解决方案--------------------正则匹配
------解决方案--------------------
public class Checkstr {
public Checkstr(){}
public String dostring(String str){
str=str.replaceAll("&","&");
str=str.replaceAll("<","<");
str=str.replaceAll(">",">");
str=str.replaceAll("'","");
str=str.replaceAll(";","");
str=str.replaceAll("--","");
str=str.replaceAll("/","");
str=str.replaceAll("%","");
return str;
}
}
------解决方案--------------------第一次听说 危险字符 学习了
------解决方案--------------------就WEB应用来说,所谓危险的字符一般就是两种
一个是SQL注入,一个是HTML语法注入
SQL注入主流的框架都可以搞定,JDBC永远都使用preparedstatement就可以防止所有的sql注入,关键是用户输入都要通过占位符往里放,就自动的替换掉了特殊字符了。hibernate等orm框架都会搞定这个问题
HTML语法注入是指用户输入的html代码回显出来,这样如果不转义就可以破坏页面的结构或者注入脚本。所以现在的网站都不允许用户直接输入html代码了,现在都是一些UBB标签来完成一些效果。HTML主要最好的解决办法是在回显的时候进行转义,所有的MVC框架或者展示层框架都有HTML转义的支持,包括struts,spring,volicty等,注意观察他们用于显示的标签