专栏首页Unity TechnologyJtro的技术分享:游戏服务器端防止Sql注入

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

所谓的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 ,@"[-|;|,|\/|\(|\)|\[|\]|\}|\{|%|@|\*|!|\']");
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于C#的游戏服务开发(三)

    这样的处理方式与之前的处理方式只有稍微的不用,之前的程序只是将某个客户端传过来的消息再传回去,并没有把这条消息传给其他客户端.那么在服务器中的逻辑就要改成将每个...

    LittleU
  • 教程|Unity中使用Tilemap快速创建2D游戏世界

    本篇文章是Unity的技术团队给大家做的关于在Unity中如何使用Tilemap快速创建2D游戏世界,一起来看看吧。

    LittleU
  • 数据结构与算法(三)

    当我们在记录这个算法的步骤的时候,不能写出“一个长度为N的有序数组中用二分查找需要的步骤为XX步”.这样写不仅浪费时间又啰嗦,这是我们不想要的,那么有什么办法简...

    LittleU
  • 使用PageHelper遇到的 报 LIMIT 10 在语句中出错原因

    就拿今天的报错举例,因为在使用PageHelper插件的时候,相当于在mapper文件中的sql语句的最后加上了 limit startpage endpag...

    逐梦的青春
  • 天天算法 LeetCode-112-路径总和

    https://leetcode-cn.com/problems/path-sum/

    灵魂画师牧码
  • 利用机器学习了解管道故障的驱动因素从而防止主水管破裂(CS CY)

    Data61和Western Water合作,应用工程专业知识和机器学习工具,为墨尔本以西地区的管道故障问题找到了一个经济有效的解决方案,该地区平均每年发生40...

    Elva
  • SQL Server 2012学习笔记 (三) ----- SQL Server SQL语句

      在很多情况下,可以用CREATE TABLE语句创建数据表、使用ALTER TABLE语句修改表结构、使用DROP TABLE语句删除表;

    挽风
  • iOS performSelector 实现原理

    因为[self performSelector:@selector(test) withObject:nil afterDelay:.0]实际在runloop里...

    赵哥窟
  • Linux查看文本文件

    mwangblog
  • 利用python自动写docx报告

    最近在做一些数据方面的东西。虽然处理 excel 很方便。有时候为了不写周报,可以用自动化来写。 比如可以从jira 里面捞数据。比如可以统计excel 里面数...

    赵云龙龙

扫码关注云+社区

领取腾讯云代金券

,,