使WordPress成为核心

开的4年前

关闭4年前

上次修改时间4年前

#52299 关闭 缺陷(bug) (固定的)

导出的用户数据可以与目录列表一起列出

报告人: 卢卡斯布斯塔曼特的简介 卢卡斯布斯塔曼特 所有者: 谢尔盖比柳科夫的简介 谢尔盖·比尤科夫
里程碑: 5.6.1 优先: 正常的
严重程度: 正常的 版本: 5.6
组件: 隐私 关键词: has-patch接口 has-unit-测试 犯罪
重点: 隐私 复写的副本:

描述

披露

起初,这是作为一份HackerOne报告打开的,但在分类时,要求将其作为公共核心票据打开。

描述

WordPress 4.9.6根据GDPR将工具添加到“导出个人数据”中:https://wordpress.org/support/article/tools-export-personal-data-screen网站/

生成后,此数据将作为.zip文件存储在wp-content/uploads/wp-personal数据导出,或wp-content/uploads/sites/{siteid}/wp-personal-data-exports在多站点安装中。

使用索引.html。但是,它应该是索引.php如中所用wp-content/plugins/index.phpwp-content/themes/index.php。这是因为索引.php是WordPress本身的入口点,因此如果服务器的web服务器索引指向的不是index.php,WordPres就根本无法工作。

这就是为什么在WordPress和Nginx的示例中,索引指向index.php的原因:

https://wordpress.org/support/article/nginx/
https://www.nginx.com/resources/wiki/start/topics/recipes/wordpress网址/

在Apache中,这由DirectoryIndex控制(https://httpd.apache.org/docs/2.4/mod/mod_dir.html)

如果启用了目录列表,并且没有指向index.html的可选目录索引,则可以列出该目录,并且可以直接从浏览器下载包含导出用户数据的zip文件。

复制步骤:

  1. 使用Nginx或Apache安装WordPress,启用目录列表并将目录索引指向index.php
  2. 转到“工具”->“导出个人数据”
  3. 输入用户名,例如:admin,然后单击“发送请求”
  4. 点击“下载个人数据”
  5. 现在转到https://your-url/wp-content/uploads/wp-personal-data-exports/

建议

更换索引.html具有索引.php防止目录列表wp-admin/includes/privacy-tools.php:325wp-admin/includes/privacy-tools.php:510

影响

攻击者可以从出于隐私原因导出数据的用户那里访问这些信息:

用户名、用户名、电子邮件、带有到期日期的会话主题、指向他/她上传的文件的链接、IP地址等。

附件(1)

52299.迪夫(2.7 KB)-由添加为什么是杰克 4年前.

将所有附件下载为:.zip文件

更改历史记录(17)

这张票是在PR#871WordPress/WordPress-develop开发通过卢克45.


4年以前
#1

  • 关键词 has-patch接口补充

#2 随访: @xkon公司
4年以前

嘿@lucasbustamante谢谢你的报道和公关!

我看到您也更改了实际的html导出。

裁判:

if(!$zip->addFile($html_report_pathname,'index.html’)){$error=__('无法将数据添加到用户隐私导出文件(HTML格式)。');

我认为这应该保持为.html格式,这样用户可以在需要时轻松打开它,所以也不需要将其更改为.php。

#3 答复: 2 @卢卡斯布斯塔曼特
4年以前

回复xkon公司:

嘿@lucasbustamante谢谢你的报道和公关!

我看到您也更改了实际的html导出。

裁判:

if(!$zip->addFile($html_report_pathname,'index.html')){$error=__('无法将数据添加到用户隐私导出文件(HTML格式)。');

在我看来,这应该保持在.html格式,这样用户就可以在需要时轻松地打开它,所以也没有必要将其更改为.php。

固定的。谢谢!

#4 @谢尔盖·比尤科夫
4年以前

  • 里程碑已从更改等待审查5.6.1
  • 所有者设置为谢尔盖·比尤科夫
  • 状态已从更改新的审查

#5 @xkon公司
4年以前

  • 关键词 犯罪补充

我觉得不错!应用并测试,标记提交。

#6 随访: @xkon公司
4年以前

  • 关键词 犯罪远离的

再次回顾这一点,还有几个地方需要为index.php更改进行更新。

功能wp_privacy_delete_old_export_files()应该进行更改,使.php文件保持不变。

除了在phpunit测试中测试创建索引导出文件夹()在里面wpPrivacyGenerate个人数据导出文件.php自身::$index_path在里面wpPrivacyDeleteOldExportFiles.php也可以查看index.html。这些也应更新,以避免测试时出现故障:)。

@lucasbustamante你能看一下并更新一下你的公关吗?

#7 答复: 6 @卢卡斯布斯塔曼特
4年以前

回复xkon公司:

再次回顾这一点,还有几个地方需要为index.php更改进行更新。

功能wp_privacy_delete_old_export_files()应该进行更改,使.php文件保持不变。

除了在phpunit测试中测试创建索引导出文件夹()在里面wpPrivacyGenerate个人数据导出文件.php自身::$index_path在里面wpPrivacyDeleteOldExportFiles.php也可以对照index.html进行检查。这些也应更新,以避免测试时出现故障:)。

@lucasbustamante你能看一下并更新一下你的公关吗?

更新了,谢谢!委员会:

#9 @卢卡斯布斯塔曼特
4年以前

我还没有更换索引.html引用自tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportFile.php,因为他们指的是索引.html它位于.zip文件中,供用户查看导出的报告。

#10 @xkon公司
4年以前

  • 关键词 has-unit-测试 犯罪补充

谢谢@lucasbustamante!

我没有替换…中的index.html引用。。。

更正一些正在对实际导出的index.html进行测试,因此它们应该保持不变。

我现在看起来很好&测试正在通过:)。

#11 答复: 8 @免费网络导师
4年以前

回复公共机器人:

卢克45对发表了评论PR#871:

@Luc45感谢您对WordPress的贡献!

在此PR中,PHPUnit测试失败,因为您没有为更改更新PHPUnit测试。

请在此处更改PHPUnit测试:https://github.com/Luc45/wordpress-develop/blob/exported-user-data-directory-listing/tests/phpunit/tests/privacy/wpPrivacyGeneratePersonalDataExportFile.php#L225

更新了,谢谢!提交:

感谢@lucasbustamante的快速更改,现在所有PHP测试都通过了。看起来不错👍

这张票是在松弛(Slack)audrasjb的in#core。查看日志.


4年以前

#13 @为什么是杰克
4年以前

  • 分辨率设置为固定的
  • 状态已从更改审查关闭

50037:

隐私:确保导出的用户数据报告在目录列表中找不到。

通过从.html.php文件文件,我们可以防止目录列表,并确保WordPress可以加载。

修复#52299.

道具lucasbustamante,xkon,freewebmentor,SergeyBiryukov,whyisjake。

#14 @为什么是杰克
4年以前

50038:

隐私:确保导出的用户数据报告在目录列表中找不到。

通过将.html文件移到.php文件,我们可以防止目录列表,并确保WordPress可以加载。

这带来了来自[50037]到5.6分支。

修复#52299.

道具lucasbustamante,xkon,freewebmentor,SergeyBiryukov,whyisjake。

#15 @谢尔盖·比尤科夫
4年以前

50055:

隐私:将新行添加到索引.php中的文件wp个人数据导出目录,以便与其他类似文件保持一致。

后续行动[50037].

请参阅#52299.

#16 @谢尔盖·比尤科夫
4年以前

50056:

隐私:将新行添加到索引.php中的文件wp-个人数据导出目录,以便与其他类似文件保持一致。

后续行动[50037].

合并[50055]到5.6分支。
请参阅#52299.

注:请参阅TracTickets公司有关使用的帮助门票。