如何防止 SQL 注入? (2020 年完整指南)- MalCare
已发表: 2023-04-19您是否担心您网站上的 SQL 注入攻击? 如果您正在阅读本文,您可能已经知道攻击的后果。 在本文中,您将学习防止 SQL 注入的简单方法。
SQL 注入可以让黑客劫持您的 WordPress 网站并对其进行访问控制。 从那里,他们可以重定向您的流量、窃取机密数据、注入垃圾邮件链接、操纵带有日语字符的搜索结果以及展示非法产品的广告。 这种攻击可能会对您的站点和业务造成无法弥补的损害。
幸运的是,如果采取正确的安全措施,SQL 注入是可以预防的。 在本指南中,我们解决了 SQL 注入并深入讨论了防止它们和保护您的 WordPress 网站的有效措施。
TL;DR:您可以使用可靠的安全插件来防止 WordPress 网站上的 SQL 注入。 安装 MalCare,该插件将自动扫描并保护您的站点免受此类攻击。
[lwptoc skipHeadingLevel=”h1,h3,h4,h5,h6″ skipHeadingText=”最后的想法”]
什么是 SQL 注入攻击?
所有 WordPress 站点通常都有允许访问者输入信息的输入区域。 这可以是站点搜索栏、联系表单或登录表单。
在联系表中,访问者将输入他们的数据,如姓名、电话号码和电子邮件,并将其提交到您的网站。
此数据将发送到您网站的 MySQL 数据库。 它在这里被处理和存储。
现在,这些输入字段需要适当的配置,以确保数据在进入数据库之前得到验证和清理。 例如,联系表单的漏洞是它应该只接受字母和数字。 理想情况下,它不应该接受符号。 现在,如果您的站点通过此表单接受任何数据,黑客就可以利用并插入恶意 SQL 查询,例如:
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
txtUserId = getRequestString("UserId"); txtSQL = "SELECT * FROM Users WHERE Userwp-block-heading"> How Does An SQL Attack Work?
黑客的目标是安全措施薄弱或存在漏洞的网站,这使他们很容易闯入。根据我们的经验,插件和主题经常会产生漏洞,黑客对此很清楚。 他们不断在 Internet 上徘徊,寻找使用易受攻击的插件和主题的站点。
为了解释这一点,我们将使用一个示例场景。 假设 A 先生正在使用插件“联系表格”来为其网站的联系页面上的表格提供支持。 假设在 2.4 版本的这个插件中发现了一个 SQL 注入漏洞,开发人员修复了它并发布了更新的 2.4.1 版本。
发布后,开发人员会透露更新的原因,使安全漏洞为公众所知。 这意味着黑客知道 Contact Form 插件 2.4 版中存在安全漏洞。
现在,X 先生将更新安装推迟了几周,因为根本没有时间运行更新。 这就是问题所在。
一旦黑客发现了漏洞,他们就会运行程序或使用漏洞扫描器在互联网上爬行,并找到使用特定版本插件/主题的网站。
在这种情况下,他们将查找使用 Contact Form 2.4 的网站。 一旦他们找到该网站,他们就会知道确切的网络漏洞,这使得他们更容易破解。 在这种情况下,他们将利用 SQL 注入漏洞并侵入您的站点。
SQL注入的类型
黑客使用两种类型的 SQL 注入:
1. 经典 SQL 注入——当您访问网站时,您的浏览器(如 Chrome 或 Mozilla)会向网站服务器发送 HTTP 请求以显示内容。 Web 服务器从网站的数据库中获取内容并将其发送回您的浏览器。 这就是您查看网站前端的方式。
现在,您网站的数据库包含各种数据,包括客户详细信息、付款信息以及用户名和密码等机密数据。 您的数据库应配置为仅发布前端数据。 应保护所有其他机密数据。 但是,如果这些应用程序安全检查没有到位,黑客就会乘虚而入。
在经典 SQL 注入攻击中,黑客向您的数据库发送恶意请求,将数据检索到他们的浏览器。 但是他们使用查询字符串来请求敏感信息,例如您网站的登录凭据。如果您没有保护这些信息,它将被发送给黑客。 通过这种方式,他们可以获得您的登录详细信息并闯入您的网站。 攻击者还可以使用准备好的语句作为高效重复执行相同或相似数据库语句的方式。
2. SQL 盲注——在这种情况下,黑客通过您网站上的输入字段注入恶意脚本。 一旦它存储在您的数据库中,他们就会执行它来造成各种破坏,例如更改您网站的内容,甚至删除您的整个数据库。在这种情况下,他们也可以使用恶意脚本来获得管理员权限。
这两种情况都会对您的网站和业务产生毁灭性的影响。 幸运的是,您可以通过在您的网站上采取正确的安全和输入验证措施来防止此类攻击。
防止 SQL 注入攻击的步骤
为防止 SQL 注入攻击,您需要对您的网站进行安全评估。 这里有两种类型的措施可以用来防止 SQL 攻击——一些是简单的,一些是复杂的和技术性的。
简单的预防措施
- 安装安全插件
- 仅使用受信任的主题和插件
- 删除您网站上的任何盗版软件
- 删除不活动的主题和插件
- 定期更新您的网站
技术预防措施
- 更改默认数据库名称
- 控制字段条目和数据提交
- 强化您的 WordPress 网站
让我们开始吧。
简单的 SQL 注入攻击预防措施
1.安装安全插件
激活网站安全插件是您保护网站所需采取的第一步。 WordPress 安全插件将监控您的网站并防止黑客入侵。
有很多插件可供选择,但根据它所提供的功能,我们选择 MalCare。 该插件将自动建立一个 Web 应用程序防火墙来保护您的站点免受攻击。 识别并阻止黑客企图。
接下来,插件的安全扫描器将每天彻底扫描您的网站。 如果您的网站上有任何可疑行为或恶意活动,您会立即收到警报。 在 Google 有机会将您的网站列入黑名单或您的托管服务提供商决定暂停您的网站之前,您可以立即采取行动并使用 MalCare 修复您的网站。
2.定期更新您的网站
正如我们在前面的 SQL 注入示例中提到的,当开发人员在他们的软件中发现安全漏洞时,他们会修复它并发布带有安全补丁的新版本。 您需要更新到新版本才能从您的站点中删除该缺陷。
我们建议每周花一次时间来更新您的 WordPress 核心安装、主题和插件。
但是,如果您看到发布了安全更新,请立即安装更新。
3.只使用受信任的主题和插件
WordPress 是最受欢迎的网站构建平台,部分原因在于插件和主题使其变得简单且价格合理。 但是在众多可用的主题和插件中,您需要谨慎选择。 检查插件的详细信息,例如活动安装数、最后更新日期以及测试过的版本。
我们建议从 WordPress 存储库下载它们。 对于任何其他主题和插件,您应该进行适当的研究以验证它们是否可信。 这是因为某些第三方主题和插件可能会被黑客恶意制作。 它也可能只是编码错误,这会导致漏洞。
4. 删除您网站上的任何盗版软件
盗版或无效的主题和插件很诱人。 它使您可以免费使用高级功能。 但不幸的是,这些通常带有预装的恶意软件。 盗版软件是黑客传播恶意软件的一种简便方法。
当您安装它时,恶意软件会被激活并感染您的网站。 最好远离此类软件。
5.删除不活跃的主题和插件
安装一个插件并在多年后完全忘记它是很常见的。 但是这种习惯会使您的网站暴露给黑客。 您在网站上安装的插件和主题越多,出现漏洞和黑客利用它们的可能性就越大。
我们建议只保留您使用的插件和主题。 删除其余部分并使您的站点更安全。 还要定期扫描您现有的主题和插件。
技术预防措施
这些措施可能需要对 WordPress 的内部运作有更多的了解。 然而,如今,一切都有一个插件。 因此,您不必担心实施这些措施所涉及的复杂性。 我们让它变得简单!
1.更改默认数据库表名
您的 WordPress 站点由文件和数据库组成。 在您的数据库中,默认情况下有 11 个表。 每个表都包含各种数据和配置。 这些表以前缀“wp_”命名。 所以表的名称可以是 wp_options、wp_users、wp_meta。 你明白了。
这些名称在所有 WordPress 站点中都是相同的,黑客知道这一点。 黑客知道哪个表存储什么样的数据。 当黑客在您的网站上插入恶意脚本时,他们知道脚本的存储位置。 使用简单的方法,他们可以执行 SQL 命令来运行恶意活动。
但是,如果您更改表的名称,它可以阻止黑客找到脚本所在的位置。 因此,当黑客试图将 SQL 代码注入您的数据库表时,他们将无法找出表名。
您可以使用 Change Table Prefix 或 Brozzme 等插件来完成此操作。 只需在您的站点上安装其中一个并按照步骤操作即可。
您也可以通过编辑 wp-config 文件手动执行此操作。 提醒一句——这里的一个小失误可能会导致数据库错误和站点故障。 在继续之前进行备份。
- 转到您的主机帐户 > cPanel > 文件管理器。
- 在这里,访问 public_html 文件夹并右键单击 wp-config 文件。
- 选择编辑,找到以下代码
“$table_prefix = 'wp_';” - 将其替换为 -
“$table_prefix = 'test_';”
您可以选择您选择的任何前缀。 这里我们选择“test_”作为新的数据库名称。 一旦完成,黑客将无法找到他们的 SQL 命令。
2. 控制字段录入和数据提交
您可以将网站上的所有输入字段配置为仅接受特定类型的数据。 例如,名称字段应该只允许字母条目(字母),因为没有理由在这里输入数字字符。 同样,联系电话字段应该只接受数字。
您可以使用 sanitize_text_field() 函数来清理用户输入。 此输入验证可确保阻止不正确或危险的条目。
3. 强化你的 WordPress 网站
这是保护 WordPress 站点免受 SQL 注入攻击的最重要步骤之一。 什么是网站加固?
WordPress 网站为您提供了许多功能来帮助您运行网站。 然而,大多数人并不使用其中的许多功能。 如果您不使用它们,WordPress.org 建议禁用或删除其中的一些。 这将减少攻击的机会,因为黑客可以尝试的元素更少!
一些 WordPress 加固措施是:
- 禁用文件编辑器
- 禁用插件或主题安装
- 实施双因素身份验证
- 限制登录尝试
- 更改 WordPress 安全密钥和盐
- 阻止在未知文件夹中执行 PHP
要实施这些措施,您可以使用 MalCare 等插件,只需点击几下即可完成。
或者您可以按照我们的 WordPress 强化指南手动实施。
这使我们结束了防止 SQL 注入攻击的工作。 如果您实施了我们在此 SQL 注入备忘单中讨论的措施,您的站点将是安全的
[ss_click_to_tweet tweet=”可以防止 SQL 注入攻击! 使用本指南在您的 WordPress 网站上实施正确的安全措施。” 内容=”” 样式=”默认”]
最后的想法
预防真的胜于治疗。 SQL 注入攻击会造成不必要的压力和严重的财务负担。
我们今天讨论的大多数措施都可以使用插件轻松实现。 因此,如果您不懂技术,也不必担心! 你仍然可以保护自己!
在实施这些措施的同时,我们强烈建议在您的网站上激活 MalCare。 它的防火墙将积极保护您的网站免受攻击。 它每天都会扫描您的网站,以检查您网站上是否存在黑客企图和恶意软件。
您可以将其视为您的网站安全卫士,负责监控您的网站并将坏人拒之门外。 知道您的网站受到保护,您可以高枕无忧。
使用我们的 MalCare 安全插件防止黑客攻击!