sql注入:
在安全等级较低的网站的用户登录界面用户名处输入万能密码admin’ or 1=1 --',密码处输入任意字符,点击登录,可以绕过后台登录系统。
使用PreparedStatement方法完成SQL语句的执行,该方法要求在执行SQL语句之前,必须告诉JDBC哪些值作为输入参数,解决了普通Statement方法的注入问题,极大的提高了SQL语句执行的安全性。
//不存在sql注入问题
String sql="select * from tb_user where user_name=? and user_pswd=?";
List list=getList(sql,params);
//存在sql注入问题
String sql="select * from tb_user where user_name='"+params[0]+"' and user_pswd='"+params[1]+"'";
List list=getList(sql,null);
XSS跨站防范:
在网站中留言板等可以实现提交的地方提交此段代码
<script>alert("xxx")</script>
若提交后,返回了alert(“xxx”)的弹窗。
则代表着存在被攻击的风险。
在项目中编写代码,在用户提交留言和评论信息时将<和>分别替换为>和<。使用此方法即可避免用户提交非法信息,并且并不影响用户正常使用功能。
修改完成后,即可正常提交信息。