sql注入漏洞怎么修复和安全加固

          最近,我们公司的在线业务系统遇到了一个更为棘手的问题。该公司的网站在线商城系统遭到黑客的入侵,数据库中的用户数据被黑客盗取。由于大部分的客户信息的泄露,公司接到了客户投诉说是电话经常被骚扰,以及受到广告短信。,由于缺乏专业的安全技术没有安全方面的经验,PHP系统仅限于功能的实现。

看来我需要学习安全方面的一些防止SQL注入攻击的,所以我必须下定决心,努力学习网站的安全。通过不断的探索,我找到了一个比较好的PHP安全方面的书籍“PHP安全之路”。在阅读的过程中,我会把学到的东西记下来,以便将来可以进行学习回忆。在掌握了基本的网站安全知识后,通过对网站的访问日志和PHP语句的运行日志进行的人工安全分析,本次网站遭到攻击主要根源是网站功能代码里隐藏的SQL代码注入漏洞,来进行盗取网站MYSQL数据库中的客户数据。

什么是SQL代码注入攻击?

众所周知,SQL注入漏洞是所有网站漏洞类型中危害最大的漏洞之一。SQL注入漏洞的原理是通过前端客户的正常请求提交参数值,向服务器提交非法的SQL代码命令,最后插入到后端数据库来执行攻击者设置的SQL语句。在网站前端和数据库之间的通信时,PHP网站代码里并没有严格检查和防止用户随意更改的参数。比如,有些参数值是允许字符串写入的,连接用于构造要在数据库中执行的恶意的SQL语句,这很容易隐藏潜在的网站安全风险。

SQL注入会导致数据库信息的泄露,特别是存放在数据库中的用户隐私信息。通过操纵数据库来篡改特定的网站代码,修改数据库中的一些字段的值,植入恶意代码链接,实施网站挂马攻击,跳转到其他网站。服务器还可能会被黑客易于远程控制,数据库服务器提供的操作系统,安装并植入木马后门,攻击者可以修改或控制操作系统,销毁硬盘数据,并禁用整个服务器的系统。目前常见的SQL注入攻击包括错误报告注入、正常注入、隐式类型注入、盲注入、宽字节注入和二次解码注入。

PHP网站中的SQL注入漏洞防护办法:

SQL注入是目前网站中级别最高的漏洞攻击,也是最容易进行防护的。在PHP源代码中,SQL注入代码防护,应合理使用MySQL数据库提供的预编译代码,数据库连接使用PHP数据对象扩展或MySQL扩展,预编译SQL语句代码到网站中。基于MySQL数据库的的PHP预编译过程,SQL可以被注入恶意代码,主要是因为它的数据和代码指令是可以同时使用的。使用预编译数据库查询数据库,不仅可以提高网站的安全性,而且可以提高网站的写入查询的效率。当一个SQL语句需要多次执行时,使用预编译语句可以减少处理的时间,提高sql语句的执行效率。在网站代码中,可以通过PDO模块或MySQL模块对SQL进行预编译。由于预处理是将SQL语句提交到MySQL server并进行预编译,当客户端需要执行SQL语句时,只需上传输入参数,将参数与SQL语句分离,就不会造成恶意参数的攻击,从根本上保证数据库的安全,以及网站的安全,如果您的网站遭受到SQL注入攻击,也可以找专业的网站安全公司来修复SQL注入漏洞,国内像SINESAFE,绿盟,启明星辰,鹰盾安全,深信服,都是国内做的比较不错的。

分享: