10up / wp-scrubber
Requires
- php: >=7.3
Requires (Dev)
- 10up/phpcs-composer: dev-master
This package is auto-updated.
Last update: 2024-08-25 10:09:01 UTC
README
此WordPress插件提供了一个命令行界面,用于从WordPress安装中清除敏感用户和评论数据。
安装
- 将插件文件克隆或下载到您的WordPress插件目录中。
- 注意:如果在WordPress VIP上,则应将插件添加到
/client-mu-plugins
目录。
- 注意:如果在WordPress VIP上,则应将插件添加到
- 通过WordPress管理界面或通过WP-CLI激活插件。
- 将
WP_ENVIRONMENT_TYPE
设置为local
或staging
。
使用方法
该插件提供了一个名为wp scrub all
的WP-CLI命令,可以从WordPress数据库中清除所有用户和评论数据。除非通过wp_scrubber_allow_on_production
覆盖,否则此命令只能在非生产环境中运行。您还可以运行wp scrub users
或wp 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.com
和get10up.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_scrub
和wp_scrubber_after_scrub
在默认命令之前或之后添加额外的清除命令。
如何允许在生产环境中使用此功能?
WP Scrubber 使用 wp_get_environment_type()
来确保它不会意外地在生产环境中运行。默认情况下,除非定义了 WP_ENVIRONMENT_TYPE
,WordPress 将假设所有环境都是生产环境。
建议将 WP_ENVIRONMENT_TYPE
更新为 local
和 staging
,然而,如果您确实需要在生产环境中运行,您可以向 wp_scrubber_allow_on_production
添加过滤器,将值更改为 true
。
如何更改要清除的用户?
除了 CLI 参数之外,还提供了三个过滤器供开发者使用
wp_scrubber_allowed_email_domains
- 允许根据用户的电子邮件域名忽略用户。默认情况下,将忽略10up.com
和get10up.com
。wp_scrubber_allowed_emails
- 允许根据用户的完整电子邮件地址忽略特定用户。如果您想保存组织中的某些用户,但不想保存所有用户,这将很有帮助。wp_scrubber_should_scrub_user
- 如果您有更复杂的条件,可以使用此过滤器逐个检查每个用户。
个人身份信息(PII)
WP Scrubber 根据WordPress核心存储数据的位置(用户、评论、标准用户/评论元键)来清除PII。它不知道第三方插件存储的PII。即使使用此工具,您也应该审计数据库中的第三方PII。
Beta的定义
10up认为这个工具对10up项目来说是生产就绪的。公开来说,我们将其定义为beta,因为我们担心人们会完全依赖这个工具,而第三方软件可以在未知位置存储PII。
支持级别
Beta: 这个项目相当新,我们不确定我们将为此提供什么样的持续支持。欢迎提交错误报告、功能请求、问题和拉取请求。如果您喜欢这个项目,请告诉我们,但在生产环境中使用时要谨慎!