Home >Backend Development >PHP Tutorial >怎样防止sql注入?

怎样防止sql注入?

PHPz
PHPzOriginal
2016-06-13 11:17:551942browse

怎样防止sql注入?

sql注入是一种将sql代码添加到输入参数中,传递到sql服务器解析并执行的一种攻击手法。

SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,通过SQL语句,实现无帐号登录,甚至篡改数据库。

sql注入是如何产生的?

1.web开发人员无法保证所有的输入都已经过滤。

2.攻击者利用发送给sql服务器的输入数据构造可执行代码。

3.数据库未作相应的安全配置(对web应用设置特定的数据库账号,而不使用root或管理员账号,特定数据库账号给予一些简单操作的权限,回收一些类似drop的操作权限)。

SQL注入攻击的总体思路

1.寻找到SQL注入的位置

2.判断服务器类型和后台数据库类型

3.针对不通的服务器和数据库特点进行SQL注入攻击

怎样防止sql注入?

以下建议可以帮助防止SQL注入攻击成功:

1、不要使用动态SQL

避免将用户提供的输入直接放入SQL语句中;最好使用准备好的语句和参数化查询,这样更安全。

2、不要将敏感数据保留在纯文本中

加密存储在数据库中的私有/机密数据;这样可以提供了另一级保护,以防攻击者成功地排出敏感数据。

3、限制数据库权限和特权

将数据库用户的功能设置为最低要求;这将限制攻击者在设法获取访问权限时可以执行的操作。

4、避免直接向用户显示数据库错误

攻击者可以使用这些错误消息来获取有关数据库的信息。

5、对访问数据库的Web应用程序使用Web应用程序防火墙(WAF)

这为面向Web的应用程序提供了保护,它可以帮助识别SQL注入尝试;根据设置,它还可以帮助防止SQL注入尝试到达应用程序(以及数据库)。

6、定期测试与数据库交互的Web应用程序

这样做可以帮助捕获可能允许SQL注入的新错误或回归。

7、将数据库更新为最新的可用修补程序

这可以防止攻击者利用旧版本中存在的已知弱点/错误。

8、使用专业的漏洞扫描工具

但是,防范SQL注入攻击是不够的。攻击者现在自动搜索和攻击目标。它的技术甚至可以很容易地应用于其他Web体系结构中的漏洞。企业应该投资于专业的漏洞扫描工具,如著名的Accunetix网络漏洞扫描程序。完美的漏洞扫描器不同于网络扫描器,它专门在网站上查找SQL注入漏洞。最新的漏洞扫描程序可以找到最新发现的漏洞。

总结:SQL注入是一种流行的攻击攻击方法,但是通过采取适当的预防措施,例如确保数据加密,保护和测试Web应用程序,以及您是最新的补丁程序,您可以采取有意义的步骤来保持您的数据安全。

更多相关知识,请访问 PHP中文网!!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn