前几天帮一个客户写了一个C++连接MySQL,当他用到他的游戏中后,被人注射了,用了一个永真式,无限的刷了游戏装备
所以,我针对参数和整体SQL语句写了两个简单的函数,进行简单的过滤。
bool CheckSQL(string sql)
{
string key[9] = { "%","/","union","|","&","^" ,"#","/*","*/"};
for (int i = 0; i < 9; i++)
{
if (sql.find(key[i]) != string::npos)
{
return false;
}
}
return true;
}
bool CheckParameter(string Parameter)
{
string key[14] = {"and","*","="," ","%0a","%","/","union","|","&","^" ,"#","/*","*/" };
for (int i = 0; i < 14; i++)
{
if (Parameter.find(key[i]) != string::npos)
{
return false;
}
}
return true;
}