首页 新闻 会员 周边

sql图书馆系统

0
悬赏园豆:50 [已关闭问题] 关闭于 2017-09-24 22:29

图书馆登录

这里的代码实现为:  UpdateData(TRUE); 

char *newpassword = trans(m_newpass);  //将输入框内的文本转换为变量 

char query[500] = "";    

  strcpy_s(query, ""); 

strcat_s(query, 500, "UPDATE `project`.`user` SET `psw`='"); 

strcat_s(query, 500, newpassword); 

strcat_s(query, 500, "' WHERE `UID`='");    //以上几条语句用来拼接SQL语句
8
 
 char uidchar[10]; 

_itoa_s(uid, uidchar, 10); 

strcat_s(query, 500, uidchar);

  strcat_s(query, 500, "';");

  if (mysql_query(sock, query))  {   AfxMessageBox(_T("重置失败")); 

}  else {   AfxMessageBox(_T("重置成功"));  

SendMessage(WM_CLOSE);  } }问题出在这里,使用的 SQL 语句是 UPDATE `PROJECT`.`USER` SET `PSW`='用户的输入'; 这就导致用户的输入被无条件地加入到 SQL 语句里执行,如果我们在重置密码框里输入 ________________________________,那么拼合之后的语句就会成为 _____________________________________。可以看到,这条语句不仅修改了 PSW 的 值,而且还将该用户的用户组设置为 1。修改完毕后再次登录该用户,就会提示是以管 理员身份登录,并且可以使用所有功能
用户提权为管理员 
 
 
 
提示:     1.数据库中用户权限对应的字段是 ugroup; 2.ugroup 中,1 代表管理员身份,2 代表普通用户身份; 3.软件使用方法:点击系统——连接数据库,待成功后选择“登入”,注册一个新用户 即可登录。   

 

千泉的主页 千泉 | 初学一级 | 园豆:154
提问于:2017-09-23 22:45
< >
分享
所有回答(0)
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册