美文网首页unity3D技术分享征服Unity3dUnity技术分享
Jtro的技术分享:游戏服务器端防止Sql注入

Jtro的技术分享:游戏服务器端防止Sql注入

作者: UnityPlane | 来源:发表于2017-12-11 17:56 被阅读51次

    所谓的sql注入,就是通过输入请求,把sql命令插入到sql语句中,已达到欺骗服务器的目的。
    假设服务器端要获取玩家的数据,可能使用如下的sql语句

    string sql = "select *from player where id = " + id ;
    

    当然,在正常情况下该语句能够完成读取数据的工作,但如果一名玩家恶意注册了类似的

    "xiaoming;delete *form player"
    

    这样的名称,这条sql语句将会变成下面两条语句。

    select *from player where id = xiaoming ;delete *form player ;
    

    执行了这样的语句之后,player表中的数据将会全部清空,后果不堪设想。如果把含有逗号、分号等特殊字符判定为不安全字符,在拼装sql语句前进行安全检测,就可以有效的防止sql注入
    代码如下:

    //判定安全字符
    public bool IsSafeStr (string str)
    {
    return !Regex.IsMatch (str ,@"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
    }
    

    相关文章

      网友评论

        本文标题:Jtro的技术分享:游戏服务器端防止Sql注入

        本文链接:https://www.haomeiwen.com/subject/mdqwixtx.html