如何防止Php应用程序中的SQL注入?

我有一个应用程序,我对服务器有复杂的请求。有很多数据库操作。管理它们有时会变得非常困难。在这种情况下,如何防止对应用程序的sql注入攻击。

null

使用准备好的语句

准备语句是将客户端提供的值与数据库查询绑定的方法。准备好的数据对象(PDO)充当中间代理并防止SQL注入。所有数据库驱动程序都支持PDO,因此数据库驱动程序没有问题。

$stmt = $pdo->prepare('SELECT * FROM employees WHERE name = :name');$stmt->execute(array('name' => $name));foreach ($stmt as $row) { // do something with $row}

正确设置数据库连接

使用默认设置通常会带来问题或安全问题。因此,通过显式指定参数来创建数据库连接是sql注入型攻击的最佳方式。

$dbConnection = new PDO('mysql:dbname=dbtest;host=127.0.0.1;charset=utf8', 'user', 'pass');$dbConnection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);$dbConnection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

使用WAF

在部署了phpweb应用程序之后,可以从internet访问它。大多数攻击者都驻留在互联网上,因此阻止他们或至少检测他们将是有价值的。Web应用程序防火墙类似于网络防火墙,但在OSI参考模型的第7层工作。简单WAF将检查http/s流量,并尝试查找块攻击请求。

应用渗透试验

渗透测试是对攻击和攻击者的模拟。白帽黑客将提供这项服务,像黑帽黑客一样攻击php应用程序,并给出一些有关php应用程序漏洞的提示。

进行静态代码分析

代码分析是使用代码分析工具在应用程序代码中查找与安全相关的代码部分的行为。 静态代码分析给出了很多问题,但其中一些是误报,所以静态代码分析报告应该由安全专业人员进行过滤,以使事情变得更好、更清晰。

相关文章: 如何列出MySQL/MariaDB数据库?

如何防止Php应用程序中的SQL注入?信息图

How To Prevent SQL Injection in Php Applications? Infografic
如何防止Php应用程序中的SQL注入?信息图

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享