建立WordPress 网站,必须保证其安全。要防止各种黑客程序攻击,包括保护自己免受 SQL 注入攻击,SQL注入攻击可能会危及您网站数据安全,并使有价值的数据(包括您的和您的用户的)暴露在外。
幸运的是,有很多方法可以保护您自己和您的网站。通过采取必要的预防措施,例如避免动态 SQL、使用防火墙、加密机密数据等,您可以更好地确保 WordPress 网站的安全。
一、 什么是 SQL 注入攻击?
SQL 注入攻击是在WORDPRESS网站输入一定字段的恶意代码。黑客可以通过在 SQL 中编写恶意语句来瞄准您的数据库服务器。 这些模仿通常在站点后端运行的命令。尽管 WordPress 竭尽全力确保核心平台免受此类攻击,但您的网站可能仍然容易受到攻击。事实上,您网站的任何人可以提交内容或数据的部分都可能受到影响。这可以包括联系表格、评论部分,甚至是测验。
SQL 代表结构化查询语言。 WordPress 使用 SQL 从您站点的数据库中检索关键信息。 没有它,您的网站将无法生成任何动态内容。
因此,SQL 是您网站的重要组成部分。 不幸的是,使用 SQL 注入 WordPress 攻击的黑客也敏锐地意识到了这一点。
然后,他们利用各种输入字段中的漏洞。 这些包括登录表单, 评论区, 和 联系表格. 如果没有适当的安全标准,WordPress 会将错误代码作为合法命令进行处理,从而允许黑客访问您的数据。
一旦攻击者入侵了您的网站,他们就可以访问其数据库并使用恶意代码破坏您的网站。例如,2016 年,一群俄罗斯黑客能够通过简单的 SQL 注入攻击,获取美国选民信息(包括姓名、地址,甚至社会安全号码)。
二、 SQL 注入攻击示例
SQL 注入攻击可以采取多种各样的形式。黑客可能会攻击个别网站和博客,或银行等大型机构。在后一种情况下,一旦进入,他们就可以更改账户余额或交易历史。即使损坏已经修复,银行也需要通知其客户,这可能会严重损害其声誉。
对于另一个实际的 SQL 注入攻击示例,我们只需要看看游戏行业。碰巧的是,许多 SQL 注入攻击都集中在视频游戏上,这是最大、最赚钱的行业之一。
大多数攻击针对的是美国公司,但德国和英国等其他国家也是黑客的重点。一旦进入游戏,攻击者就可以窃取金钱、游戏内货币、购买的物品等,从而使公司(及其用户)付出实际金钱。
三、 WordPress 中防止 SQL 注入的 10 个步骤
谁都不想成为 WordPress SQL 注入攻击的受害者。幸运的是,您现在可以使用一些方法来保护自己和您的网站,并确保您尽可能安全。让我们看看您可以采取的十个最佳步骤。
第 1 步:使用输入验证和过滤用户数据
黑客通过 SQL 注入攻击渗透到您的站点的最简单方法之一是通过用户提交的数据。因此,对用户提交的数据使用输入验证和过滤有助于防止危险的字符注入。输入验证只要求您测试用户提交的任何数据,然后可以对其进行过滤以防止 SQL 注入。
让我们从验证开始。 在处理开始之前,验证可确保用户的输入与预期格式相匹配。 例如,如果缺少 @ 符号,WordPress 将不会验证注册电子邮件输入。
您可以通过限制在某些字段中使用特殊字符来帮助清理数据。 例如,单引号 (‘) 是 SQL 代码的常见部分。 因此,您可能希望禁止在输入中使用它。
您还可以使用下拉菜单代替开放式字段作为答案。 例如,考虑为用户提供一个下拉菜单来选择他们的居住州。 这将减少黑客访问您数据的机会,而不会影响用户体验。
注意——大多数高质量的 WordPress 表单插件应该自动清理数据以防止 SQL 注入攻击,但添加您自己的保护仍然是进一步提高安全性的最佳实践,如果您为用户提交的数据创建自己的表单,这一点尤其重要。
第 2 步:避免使用动态 SQL
由于其自动化方式,动态 SQL 存在漏洞。该语言的动态形式不是静态 SQL,而是自动生成和执行语句,为黑客创造了机会。因此,明智的做法是使用准备好的语句、参数化查询或存储过程来保护您的 WordPress 站点免受 SQL 注入攻击。
第 3 步:定期更新和打补丁
为了保证您的数据库安全,定期更新和修补至关重要。当您没有最新版本的 WordPress 以及您可能正在使用的任何插件和主题时,您就会面临黑客可以利用的安全漏洞。应用程序并非不受 SQL 攻击的影响。 由于您授予这些程序访问您网站的权限,黑客可以使用第三方软件访问您的信息。
当开发人员发现他们的安全漏洞时,他们会发布更新来纠正它。 因此,您必须在补丁发布后立即更新软件。 这适用于插件、主题和 WordPress 核心。
通常,连续 SQL 语句监控被认为是抵御此类攻击的最佳实践。 但是,不能保证您使用的工具会执行此操作。
因此,我们鼓励您对允许访问您网站的插件进行选择。 这包括仔细阅读评论,选择具有大量活跃用户的插件,并坚持 信誉良好的来源. 这可以帮助您避免无效主题和故障代码的风险。
第 4 步:使用防火墙
确保 WordPress 网站安全的最有效技术之一是设置防火墙。实际上,防火墙是一种网络安全系统,用于监视和控制进入您的站点的数据,作为抵御 SQL 注入攻击的额外安全级别。
第 5 步:删除不必要的数据库功能
数据库的功能越多,就越容易受到潜在的 SQL 注入攻击。为了保护它,请考虑规范化您的数据库以删除无关内容并使您的网站更安全。
第 6 步:限制访问权限
WordPress 提供 对您网站的各种访问级别——称为“角色”. 这些范围从低级别订阅者到完全访问管理员角色。 不同的角色被授予对不同“能力”和仪表板区域的访问权限。 例如,一种能力可能是 安装新插件.
由于更高的角色通常可以访问更多的能力和输入数据的方式,因此限制具有此访问权限的人数会自动降低 SQL WordPress 注入攻击的几率。 您可以在 Settings → New User Default Role 下将默认的新用户角色设置为尽可能低的访问角色.
限制访问权限是保护数据库免受 SQL 注入攻击的另一种方法。不适当的访问权限会迅速将您的 WordPress 网站暴露在这种攻击之下。
为了确保您的网站安全,请考虑进入您的 WordPress 用户角色并限制其他人可以访问和更改的内容。例如,您可以确保所有过去的用户都已从非订阅者角色(例如编辑者或贡献者)中删除,以消除这些潜在漏洞。
第 7 步:加密机密数据
无论您的数据库看起来多么安全,您总是可以让它更安全。当您加密数据库中的机密数据时,您就是在保护它并保护该数据免受 SQL 注入。
第 8 步:不要分享额外信息
不幸的是,黑客可以通过数据库错误消息收集大量信息。这包括身份验证凭据、服务器管理员的电子邮件地址,甚至部分内部代码等详细信息。
保护您的站点的一种有效方法是为自定义 HTML 页面上的错误创建通用消息。请记住,您透露的信息越少,您的 WordPress 网站就越安全。
数据库错误显示的一些可以显示有关您站点基础架构的非常具体的信息,使网站容易受到 SQL 注入的攻击。我们建议专门生成一个数据库出错的页面,当数据库发生错误信息时,将自动显示该页面。
[php] <?php // custom WordPress database error page header(‘HTTP/1.1 503 Service Temporarily Unavailable’); header(‘Status: 503 Service Temporarily Unavailable’); header(‘Retry-After: 600’); // 1 hour = 3600 seconds // If you wish to email yourself upon an error // mail("your@email.com", "Database Error", "There is a problem with the database!", "From: Db Error Watching"); ?> <!DOCTYPE HTML> <html> <head> <title>Database Error</title> </head> <body> You got problems. </body> </html> [/php]
把以上文件放入你的wp-content 文件夹。
第 9 步:监控 SQL 语句
当您监控连接数据库的应用程序之间的 SQL 语句时,您可以帮助识别 WordPress 站点中的漏洞。您可以使用 Stackify 和 ManageEngine 等外部应用程序。
第 10 步:改进您的软件
在 SQL 注入攻击和一般黑客攻击的世界中,拥有最新的系统是关键。这样做有助于防止用于非法访问网站的不断发展新的技术。一定要记得,防止黑客攻击不是一次性的任务。
四、WordPress 的 防止SQL 注入的插件
过时的软件可能会使您的 WordPress 站点容易受到 SQL 注入攻击,但有一些安全插件可以保护您。使用以下工具之一可以让您放心,并使您能够专注于运行 WordPress 网站的其他更重要的方面。
1. 使用 Sucuri Security 防止 SQL 注入攻击
Sucuri Security 是一个免费的安全插件。它使您能够监控到谁登录到您的站点并进行更改,以及这些更改的内容是什么。
安装后,Sucuri 会扫描您的文件以查找恶意软件,提供黑名单监控,并为您提供可选的防火墙。要将此插件添加到您的站点,您需要先转到插件 > 添加新插件来下载并安装激活它。
然后在仪表板选择 Generate API Key,这将激活事件监控。此密钥将用于验证 HTTP 的请求。
2. 使用 Wordfence Security 防止 SQL 注入攻击
专为 WordPress 设计的 Wordfence Security 为您的网站提供了另一个防火墙来防止 SQL 注入攻击,提供双重身份验证 (2FA),并扫描恶意软件 – 特别是 WordPress SQL 注入。
下载和激活插件很简单。前往 Plugins > Add New,搜索 Wordfence Security,然后下载插件。
准备就绪后,单击激活。而已!它现已启动并运行,您可以随时开始扫描恶意软件。
3. 使用 All In One WP Security & Firewall 插件防止 SQL 注入
最后,您可以选择 All In One WP Security & Firewall 作为您的安全插件。它不仅为您提供了额外的防火墙,而且使机器人更难尝试注册为用户。这可以保护您的代码,并阻止任何可能导致过多 404 错误和网络钓鱼信息的 IP 地址。
要获取插件,请转到插件 > 添加新插件并下载它。然后您可以激活并安装它。
您现在可以浏览插件的设置并配置站点的安全设置。您可以切换您想要激活的功能,例如“登录锁定”,并查看谁登录了您的网站。