SQL注入脚本需要修复

function SetLastCharacter(source, charid)
   MySQLAsyncExecute("UPDATE `user_lastcharacter` SET `charid` = '"..charid.."' WHERE `steamid` = '"..GetPlayerIdentifiers(source)[1].."'")
end

这是一个有漏洞的代码,我需要继续使用这个脚本,但是我需要修复它,任何帮助将不胜感激。

点赞
用户1847592
用户1847592
function SetLastCharacter(source, charid)
   charid = string.gsub(charid, "['\\]", "%0%0")
   local text = GetPlayerIdentifiers(source)[1]
   text = string.gsub(text, "['\\]", "%0%0")
   MySQLAsyncExecute("UPDATE `user_lastcharacter` SET `charid` = '"..charid.."' WHERE `steamid` = '"..text.."'")
end
2020-01-17 00:50:11