10up/wp-scrubber

安装: 11,238

依赖: 0

建议者: 0

安全性: 0

星标: 15

关注者: 15

分支: 3

开放性问题: 6

类型:wordpress-plugin

1.0.3 2023-06-27 15:58 UTC

This package is auto-updated.

Last update: 2024-08-25 10:09:01 UTC


README

此WordPress插件提供了一个命令行界面,用于从WordPress安装中清除敏感用户和评论数据。

Support Level GPLv2 License

安装

  1. 将插件文件克隆或下载到您的WordPress插件目录中。
    1. 注意:如果在WordPress VIP上,则应将插件添加到/client-mu-plugins目录。
  2. 通过WordPress管理界面或通过WP-CLI激活插件。
  3. WP_ENVIRONMENT_TYPE设置为localstaging

使用方法

该插件提供了一个名为wp scrub all的WP-CLI命令,可以从WordPress数据库中清除所有用户和评论数据。除非通过wp_scrubber_allow_on_production覆盖,否则此命令只能在非生产环境中运行。您还可以运行wp scrub userswp scrub comments来仅清除用户或评论。

要使用此命令,请打开终端并导航到您的WordPress安装位置。然后运行以下命令:

wp scrub all
wp cache flush

在创建用于本地开发的导出时,最佳实践是从较低环境导出一个清除数据的数据库。

  • 将生产环境复制到较低环境(staging、develop、preprod等)。
  • 使用wp scrub all命令在较低环境中清除数据。
  • 导出清除数据的数据库。

注意:在WordPress VIP上,从生产环境复制到较低环境时,清除命令将自动执行。

清除数据

用户

  • 所有现有密码都被替换为随机密码。
  • 电子邮件、用户登录名和显示名称被替换为虚拟值。

要仅清除用户,请运行以下命令:

wp scrub users

评论

  • 评论和评论元表将被完全清空。要仅清除评论,请运行以下命令:
wp scrub comments

在多站点上,要清除所有站点的评论,可以运行以下命令:

wp site list --field=url | xargs -n1 -I % wp --url=% scrub comments
wp site list --field=url | xargs -n1 -I % wp --url=% cache flush
wp cache flush --network

CLI参数

  • --allowed-domains - 以逗号分隔的电子邮件域名列表。任何具有此电子邮件域名的WordPress用户都将被清除脚本忽略。10up.comget10up.com默认被忽略。
    • 例如:wp scrub all --allowed-domains=example.com,example.net
  • --allowed-emails - 以逗号分隔的电子邮件地址列表。任何具有此电子邮件的WordPress用户都将被清除脚本忽略。
    • 例如:wp scrub all --allowed-emails=user1@example.com,user2@example.com
  • --ignore-size-limit - 忽略数据库大小限制。
    • 例如:wp scrub all --ignore-size-limit

数据库大小限制

WP Scrubber包括2GB的数据库大小限制。此限制存在作为安全措施,以防止清除操作在大型网站上生效,除非开发者选择忽略警告。

核心插件非常快速,并根据需要清除的用户数量进行扩展。然而,由于项目鼓励扩展额外的钩子和过滤器,自定义查询通过文章或文章元数据循环可能会大大减慢清除操作。

您可以使用wp_scrubber_db_size_limit调整默认大小限制。

可扩展性

WP Scrubber包括几个过滤器和操作,允许开发人员挂钩到清除过程并添加自己的规则。

如何添加自己的清除规则?

可以使用wp_scrubber_before_scrubwp_scrubber_after_scrub在默认命令之前或之后添加额外的清除命令。

如何允许在生产环境中使用此功能?

WP Scrubber 使用 wp_get_environment_type() 来确保它不会意外地在生产环境中运行。默认情况下,除非定义了 WP_ENVIRONMENT_TYPE,WordPress 将假设所有环境都是生产环境。

建议将 WP_ENVIRONMENT_TYPE 更新为 localstaging,然而,如果您确实需要在生产环境中运行,您可以向 wp_scrubber_allow_on_production 添加过滤器,将值更改为 true

如何更改要清除的用户?

除了 CLI 参数之外,还提供了三个过滤器供开发者使用

  1. wp_scrubber_allowed_email_domains - 允许根据用户的电子邮件域名忽略用户。默认情况下,将忽略 10up.comget10up.com
  2. wp_scrubber_allowed_emails - 允许根据用户的完整电子邮件地址忽略特定用户。如果您想保存组织中的某些用户,但不想保存所有用户,这将很有帮助。
  3. wp_scrubber_should_scrub_user - 如果您有更复杂的条件,可以使用此过滤器逐个检查每个用户。

个人身份信息(PII)

WP Scrubber 根据WordPress核心存储数据的位置(用户、评论、标准用户/评论元键)来清除PII。它不知道第三方插件存储的PII。即使使用此工具,您也应该审计数据库中的第三方PII。

Beta的定义

10up认为这个工具对10up项目来说是生产就绪的。公开来说,我们将其定义为beta,因为我们担心人们会完全依赖这个工具,而第三方软件可以在未知位置存储PII。

支持级别

Beta: 这个项目相当新,我们不确定我们将为此提供什么样的持续支持。欢迎提交错误报告、功能请求、问题和拉取请求。如果您喜欢这个项目,请告诉我们,但在生产环境中使用时要谨慎!

喜欢您看到的吗?