Fixed: Possible SQL injection, fixes #297

--HG--
branch : develop
This commit is contained in:
kervala 2016-10-18 17:44:47 +02:00
parent d7f62326aa
commit a656985518

View file

@ -379,8 +379,12 @@ void clientAuthentication(CMessage &msgin, TSockId from, CCallbackNetBase &netba
{ {
if (!Clients[i]->BadLogin) // don't allow new login attempt while thisflag is set if (!Clients[i]->BadLogin) // don't allow new login attempt while thisflag is set
{ {
// escape login
char esccapedLogin[100];
size_t len = mysql_real_escape_string(DatabaseConnection, esccapedLogin, login.c_str(), login.length());
// make a db request to to db to see if password is valid // make a db request to to db to see if password is valid
std::string queryStr = toString("SELECT Password FROM user where Login='%s'", login.c_str()); std::string queryStr = toString("SELECT Password FROM user where Login='%s'", esccapedLogin);
int result = mysql_query(DatabaseConnection, queryStr.c_str()); int result = mysql_query(DatabaseConnection, queryStr.c_str());
if (result == 0) if (result == 0)
{ {