13454735035 cc@jiuwu95.com
网站建设

在网站建设中如何防止 SQL 注入攻击

攻击者经常针对使用已知漏洞的网站建设。在针对性攻击期间,未公开、未修补或零日漏洞也占 SQL 注入的很大比例。

保护您的网站免受 SQL 注入攻击的最简单方法是使所有第三方软件和组件保持最新。但是,存在许多可用于帮助防止 SQL 注入漏洞的技术。

1.使用带有参数化查询的准备好的语句

准备好的语句用于确保您在查询中需要的任何动态变量都不能逃脱它们的位置。核心查询是预先定义的,然后是参数及其类型。

由于查询知道预期的数据类型,例如字符串或数字,因此他们确切知道如何将它们集成到查询中而不会引起问题。

2.使用存储过程

存储过程是存储在数据库本身上的常见 SQL 操作,仅随参数而变化。存储过程使攻击者更难以执行他们的恶意 SQL,因为它无法动态插入到查询中。

3.白名单输入验证

根据经验,不要相信用户提交的数据。您可以执行允许列表验证,以根据一组现有的已知、批准和定义的输入来测试用户输入。每当接收到不符合指定值的数据时,它就会被拒绝——保护应用程序或网站免受过程中的恶意 SQL 注入。

4.执行最小特权原则

最小权限原则是一种计算机科学原则,可加强对您网站的访问控制以减轻安全威胁。

要实现这一原则并防御 SQL 注入:

  • 使用系统上的最低权限集来执行操作。
  • 仅在需要执行操作时授予权限。
  • 不要将管理员类型的访问权限分配给应用程序帐户。
  • 最小化您环境中每个数据库帐户的权限。

5.转义用户提供的输入

在正常的 SQL 注入期间,不良行为者可以简单地读取返回的文本。但是,当攻击者无法从数据库服务器中检索信息时,他们通常会使用基于时间的 SQL 注入来实现其结果。这是通过使用需要很长时间才能完成的操作来实现的——通常是几秒钟。

在确定 Web 应用程序或网站上是否存在漏洞时,通常使用基于时间的 SQL 注入,以及在盲 SQL 注入期间与基于布尔的技术结合使用。

6.使用 Web 应用程序防火墙

您可以使用 Web 应用程序防火墙防止通用SQL 注入。通过过滤潜在危险的 Web 请求,Web 应用程序防火墙可以捕获并阻止 SQL 注入。

如果您的网站被 SQL 注入攻击了怎么办

如果发生 SQL 注入,您可以采取许多步骤来修复您的网站。

1.找到易受攻击的代码

从 SQL 注入攻击中恢复的第一步是确定漏洞所在的位置。您可以手动发起攻击或运行自动 SQL 注入攻击工具(如 Havij、SQLmap 或 jSQL)来识别易受攻击的代码。

2.删除注入的内容和后门

获得有关恶意软件位置的信息后,请从数据库中删除恶意注入和不良数据,并将其恢复到干净状态。您还需要检查网站的其余部分和文件系统是否存在后门。

3.修补漏洞

数据库、应用程序和第三方组件中的漏洞经常被黑客利用。一旦您确定了易受攻击的软件,请对易受攻击的代码以及任何其他过时的组件应用补丁和更新。

4.更新您的数据

当漏洞发生时,重要的是要在修补漏洞后立即更改所有密码和应用程​​序机密。通过清理数据来防止再次感染,以确保数据库中不存在恶意管理员用户或后门。

5.监控 SQL 语句

设置监视器以识别数据库中的任何恶意 SQL 语句。使用行为分析和/或机器学习的工具可以帮助检测您网站的入侵指标 (IoC)。

6.设置 WAF

考虑设置Web 应用程序防火墙以过滤对您网站的恶意请求。这些对于在补丁可用之前提供针对新漏洞的保护特别有用

本文由宁波久五网络原创分享