关于数程序链接数据库的问题,向老手请教一下-问答-阿里云开发者社区-阿里云

开发者社区> a123456678> 正文

关于数程序链接数据库的问题,向老手请教一下

2016-03-23 16:27:27 1612 1

目前还在学习阶段,语言是C/C#数据库是MYSQL,想请教一下几个问题;
1.客户端每次链接数据库的时候,有没有必要检查数据是否以及开启?测试的时候发现如果数据库没有启动或中途关关闭的话,程序会直接卡死或退出,本人的想法是每次连接数据库的时候用try catch之类的语句测试一下,不让程序卡死影响其它的功能,但是这样好像比较费性能,由于没有参与过比较好的案子这里向大家请教一下这样做好不好,或者有什么更好的解决方法。
2.给客户端调用的存储过程,输入的参数要不要检验是否合法,同样是性能问题,因为经验告诉我们不要信任用户的任何输入,前辈们也这样讲,我担心的是通过破解客户端中的内容,拿到数据库的一些信息以后直接绕过登录验证向存储过程传数据,从而污染数据库,不知道这种担心是否多余,另外还是性能问题,如果存储过程中的语句过多的话势必影响数据库的性能,是否有必要做取舍?
3.以我目前的水平来理解,如果一个程序要向数据库中读/取数据,那么这个程序中应该是要保存相应的数据库用户名和密码的,那么如何保证它们的安全?用户权限肯定是要设置的,但是只要有写权限就有可能向数据库中写入垃圾信息,一般比较正规的处理方法是怎样?
水平有限,可能讲的不是很清楚,大概就是那么回事,麻烦大家了!

取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:11:29

    1 try catch能解决异常导致程序退出的问题,但是没法解决卡死的问题,要解决卡死的问题,你需要开一个线程,在线程里面连接判断。同时把connection对象的timeout设置地小一些。
    2 如果是C#,用sqlparamater,这样可以防止sql拼接引起的注入问题。同时,对于敏感的业务,建议在服务器对格式和内容做额外的判断。性能没有你想得那么严重。再说再怎么考虑性能,首先正确性是第一的。
    3 对密码做md5编码,然后把编码后的值存入数据库。登录判断的时候,对用户输入的密码也做md5,和存在数据库的比较。
    避免垃圾数据一个是你的业务层的过滤和判断,一个是完善的日志,使得一旦有人搞破坏,你可以及时发现,并且用技术以外的手段追究他。

    0 0
相关问答

17

回答

【大咖问答】对话PostgreSQL 中国社区发起人之一,阿里云数据库高级专家 德哥

阿里ACE 彭飞 2019-07-10 09:36:10 969965浏览量 回答数 17

8

回答

OceanBase 使用动画(持续更新)

mq4096 2019-02-20 17:16:36 333885浏览量 回答数 8

110

回答

OSS存储服务-客户端工具

newegg11 2012-05-17 15:37:18 292300浏览量 回答数 110

33

回答

Win Server 2003-2016 加密勒索事件必打补丁合集

妙正灰 2017-05-15 10:44:38 277539浏览量 回答数 33

38

回答

安全组详解,新手必看教程

我的中国 2017-11-30 15:23:46 256876浏览量 回答数 38

294

回答

Linux Bash严重漏洞修复紧急通知(已全部给出最终修复方案)

qilu 2014-09-25 13:26:50 431624浏览量 回答数 294

21

回答

请教一下数据量有100万条左右要什么配置?

易网网络 2013-03-27 15:18:02 192344浏览量 回答数 21

249

回答

阿里云LNAMP(Linux + Nginx + Apache + MySQL + PHP)环境一键安装脚本

云代维 2014-02-14 15:26:06 302612浏览量 回答数 249

2

回答

区域选择帮助

fanyue88888 2012-12-07 15:54:30 204011浏览量 回答数 2

13

回答

游戏云精彩帖汇总

nono20011908 2014-08-22 11:00:12 203647浏览量 回答数 13
+关注
0
文章
14879
问答
推荐问答
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载