一个有趣的问题,求大神解释
数据库:一个Uid对应一个Upwd和一个Uname(目前只有两个账户)
一个老同事调戏菜鸟,在登陆界面的密码框里输入了一些不知道什么的东东(密码框有限制20个字符以内),然后我的网页就悲剧了,两个账户的Uname变成了同一个,求解释,求解决办法?
ps:登陆界面的sql语句:
String sql="select * from userinfo where Uid='"+username+"' and Upwd='"+password+"'";
rs=st.executeQuery(sql);
if(rs.next()){
session.setAttribute("u_name",rs.getString("Uname"));
}
------解决方案--------------------不要用单引号去拼接字符串吧 我觉得应该是这方面的问题
你可以直接在密码框里输入
' or 'a'='a 试试 结果肯定是你看到的那种用户名是一个
所以 不要用拼接 用?代替传入参数 然后用setstring什么的赋值
------解决方案--------------------sql注入了?
------解决方案--------------------强势围观,貌似很有趣的样子!
------解决方案--------------------