如何防止 SQL 注入?

640

题图:by from gary bunt

昨晚看见群里在讨论关于数据库安全以及关于 SQL 注入的问题,那就简单的说一下。


————


首先 SQL 注入是指有些不法分子或者黑客利用一些代码中的 SQL 漏洞来进行攻击,进取数据库进行篡改一些数据或者删除一些表中的业务重要数据,更有甚者直接把表和库直接删除。。

————

防止 SQL 注入,而黑客一般利用两种途径去进行攻击,一种是动态 SQL。比如系统中的用户登录认证:sring sql =“select * from t_user where username =‘ “username” ’+‘ “password” '。黑客经常用到的手段就是1=1--,直接达到免密登录,进去数据库进行为所欲为的 update、delete、甚至drop table、drop database等。

条件后面username=”or 1=1 用户名等于 ” 或1=1 那么这个条件一定会成功;然后后面加两个-,这意味着注释,它将后面的语句注释,让他们不起作用,这样语句永远都能正确执行,用户轻易骗过系统,获取合法身份。

如果在来点劲爆的,执行DROP DATABASE (DB Name) --' and password=''那后果就可能惨了,要比比特币勒索还要痛苦。

另外一种就是通过存储过程来进行攻击。找到存储过程当中的一些特殊的 SQL以及一些特殊符号,去转义符、分号、--符号等。

—————

这个时候就涉及到了数据库安全,如何保证并且有效防范数据库被别人攻击呢?

数据库安全包含两层:第一层是指系统运行安全,系统运行安全通常受到的威胁如下,一些网络不法分子通过网络,局域网等途径通过入侵电脑使系统无法正常启动,或超负荷让机子运行大量算法,并关闭cpu风扇,使cpu过热烧坏等破坏性活动; 第二层是指系统信息安全,系统安全通常受到的威胁如下,黑客对数据库入侵,并盗取想要的资料。数据库系统的安全特性主要是针对数据而言的,包括数据独立性、数据安全性、数据完整性、并发控制、故障恢复等几个方面。

1、数据库尽量不要裸奔在公网上。

一般数据库服务器,也就是装数据库的机器尽量不要装在公网机器上。公网机器很可能被SQL注入。危险性非常大。退一步讲,就算装在了公网机器上,也要进行防火墙设置,比如开白名单、入出站规则设置。去年的勒索病毒就是最好的案例。

2、应用系统配置文件加密

比如,一般的应用系统都会有配置文件webconfig,一般里面会涉及到链接数据库的字符串,如ip、端口、数据库名称、用户名、密码建议都进行加密。一般采用md5或base64去进行加密,但是这种方法太低级了。需要去用更难破解的手段去加密。其他行业我不太清楚、在医疗行业医院在三级等保时,配置文件各个应用系统配置文件必须要求是加密的。

3、操作系统层面的漏洞

操作系统也是有漏洞的,这个时候就必须要去打补丁,很重要。吃碗泡面,没调料我估计也好吃不到哪里去。

4、数据库的用户名和密码复杂程度

用root或者administrator密码123或者123456的这种都是在作死。

5、还要防止那种删库跑路的

一个rm-rf/*或者回收站就彻底凉凉了。『从删库到跑路』这本书在某宝上已经卖的很火了。开个玩笑,删库获刑的不少了,千万不可冲动。

我说:与其温水煮青蛙,不如跳出重围搏一把 。高哥织梦圈 不只有 it 、更有职场、段子、技术、写作、创业等。欢迎志同道合的朋友们。

640

ps:

吃水不忘挖井人,懂的人自然懂


往期文章:

写点经验给你看!

三种人!

懂业务的技术人!

干起来。

640

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值