WordPress 中的随机数指南

已发表: 2023-02-12

安全性是所有网站所有者的重要话题。 虽然有很多策略可以保护您的网站安全,但不应忽视在 WordPress 中使用随机数。 这是使用最广泛的安全功能之一,可以防止一系列潜在问题。

随机数是一个“使用一次的数字”,它可以保护表单和 URL 免受恶意个人和其他滥用行为的侵害。 这些数字用作用户浏览器必须显示的标识值,以便获得执行敏感操作的权限。

在本文中,我们将了解随机数在 WordPress 中的工作原理以及如何创建它们。 然后我们将讨论如何验证随机数。 让我们开始吧!

目录
1. Nonces 在 WordPress 中如何工作?
2.创建一个随机数
3.验证一个随机数
4.在 WP Engine 上构建安全的数字体验

Nonces 如何在 WordPress 中工作?

随机数的主要目的是保护您的 WordPress 网站免受恶意攻击,例如跨站点请求伪造 (CSRF)。 这种类型的攻击诱使用户提交表单或单击对您的网站有害的链接。 为了保护您的站点,WordPress 检查随机数值,并且仅当该值正确时才允许操作完成。

Nonces 已经是 WordPress 功能的一部分,您不需要将它们添加到 WordPress 生成的元素中。 这意味着添加和编辑帖子等关键操作会自动受到保护。

使用 nonce 时,它​​的默认寿命为 24 小时。 在那之后,nonce 不能再用于验证为其定义的操作。 但是,网站管理员可以调整此生命周期。

nonce 防止的最常见的 CSRF 攻击之一是恶意删除用户帐户。 实施随机数后,您的管理屏幕将生成用于删除帐户的 URL。 WordPress 会在该 URL 的末尾添加一个随机数,看起来像这样:

http://yourdomain.com/wp-admin/users.php?user=7&action=delete&_wpnonce=c214gd5315

如果攻击者试图用另一个值替换用户 ID,例如“user=8”,则随机数将无效。 删除账号将失败​​,并显示 403 Forbidden 错误页面。 这使得恶意个人更难攻击您网站的内容。

知道随机数可以保护您的网站很重要,但您还需要了解如何实施它们。 虽然它们已经为默认的 WordPress 功能激活,但您可能需要为您的主题和插件手动实施它们。

创建随机数

要创建随机数,您需要向网站代码添加一个函数。 所有随机数创建代码都放在functions.php文件中。 要打开此文件,请导航到 WordPress 仪表板中的外观>主题编辑器。 在右侧,单击functions.php打开文件编辑器。

随机数是为 URL、表单和操作单独实现的。 要创建动作随机数,请将以下代码添加到此文件中:

 $nonce= wp_create_nonce('$action');

应调整代码的“$action”部分以反映您希望随机数验证的操作。 一个例子是使用“删除帖子”操作,它设置随机数来验证试图删除帖子的用户。

要为 URL 创建随机数,您可以使用以下代码:

 $nonce= wp_nonce_url();

在括号内,您需要声明函数的参数。 这是用于用户操作的裸 URL 和字符串。 该字符串应特定于单个用户,以提高 nonce 的安全性。

如果你想创建一个用于删除用户帐户的随机数,你可以使用这个片段:

 $nonce= wp_nonce_url($bare_url,'delete-user_'.$user->ID);

WordPress 会将随机数的名称默认为“_wpnonce”,但您可以通过将您选择的名称添加到上述字符串的末尾来更新它。

要为表单创建随机数,请包含以下代码:

 $nonce= wp_nonce_field();

在括号中,您需要为用户操作添加一个字符串。 完成后,该函数会在表单中创建两个隐藏字段,第一个包含随机数哈希值。 第二个字段是当前 URL。 最终函数应如下所示:

 $nonce= wp_nonce_field('remove-comment_'.$comment_id);

此 nonce 函数还将具有默认的 WordPress nonce 名称。 但是,如果您愿意,这也是您可以修改的内容。

验证随机数

将随机数添加到您的 WordPress 网站后,验证它很重要。 这可确保 nonce 正常工作并确保您的网站安全。

不同的方法用于验证 URL 和表单的随机数。 要验证 URL 随机数,请将以下代码添加到functions.php文件中:

 wp_verify_nonce($nonce, $action);

在此函数中,将“$nonce”调整为您要验证的nonce的名称,例如“delete-user”。 然后,将字符串“$action”更改为创建随机数的具体时间。 当函数运行时,如果 nonce 无效,它将返回“false”。

另一方面,如果 nonce 有效,该函数将返回 1 或 2。这会告诉您 nonce 的年龄。 等于 1 的值表示随机数是在过去 12 小时内创建的。 等于 2 的值表示随机数是在 12 小时内创建的,但不到 24 小时前。

如果您在表单中添加了随机数,则需要以下代码来验证它:

 check_admin_referer($action, $nonce);

如果 nonce 值有效,表单将按预期运行。 但是,如果 nonce 无效,用户的浏览器会将他们重定向到 403 Forbidden 错误页面。

在 WP Engine 上构建安全的数字体验

安全对于稳定的网站至关重要,随机数增加了一层额外的保护。 要实现它们,您需要做的就是将一些代码添加到您的functions.php文件中。 使用的代码因您要创建的随机数类型和您要保护的操作而异。

虽然创建和实施随机数可以增强站点安全性,但还需要考虑其他安全协议。 幸运的是,WP Engine 的安全 WordPress 托管平台为用户和开发人员提供了一些最好的安全资源。 这让您有更多时间专注于完善您的 WordPress 网站!