PHPSReadSheet使用MD5哈希

PHPSReadSheet使用MD5哈希,php,phpexcel,phpspreadsheet,phpoffice,Php,Phpexcel,Phpspreadsheet,Phpoffice,这个问题是针对phpexcel/phpspreadsheet的开发人员的 我们目前正在使用网站上的库生成excel文件(显然),目前正在获得SOC2认证;这要求我们将所有代码和第三方代码运行到安全扫描程序中 扫描程序返回36个漏洞,所有这些漏洞都是“使用了损坏或有风险的加密算法”;由于只需使用MD5函数调用 所以我的问题是为什么散列使用MD5,为什么我们要对它进行散列?如果我能更好地理解正在发生的事情,我可以尝试更改哈希机制,或者至少解释为什么它真的不存在安全风险。我不是PHPSReadShee

这个问题是针对phpexcel/phpspreadsheet的开发人员的

我们目前正在使用网站上的库生成excel文件(显然),目前正在获得SOC2认证;这要求我们将所有代码和第三方代码运行到安全扫描程序中

扫描程序返回36个漏洞,所有这些漏洞都是“使用了损坏或有风险的加密算法”;由于只需使用MD5函数调用


所以我的问题是为什么散列使用MD5,为什么我们要对它进行散列?如果我能更好地理解正在发生的事情,我可以尝试更改哈希机制,或者至少解释为什么它真的不存在安全风险。

我不是PHPSReadSheet的开发者之一,但我对它如何使用md5函数有一些观察

在国际海事组织,报告的漏洞是误报的。确实,使用
md5()
保护数据(尤其是密码)是不合适的。但是,除了安全性之外,哈希值还有其他用途。代码扫描似乎假定md5用于加密目的。事实并非如此

只要看一下源代码,就知道在哪里使用了
md5()
。它主要用于创建具有多个属性值的对象的散列,以便比较对象及其所有属性值。我没有发现任何涉及密码或其他安全相关任务的使用

样式对象(即边框、颜色、对齐方式等)是md5哈希的常见目标。考虑一个“边框”对象。比较组合的top、right、bottom、left和diagonal值的散列要比一次遍历一个属性来比较另一个对象中相同属性的值容易得多


尽管如此,我并不认为phpspreadsheet是加密安全的,也不认为md5的每一次使用都是适当的。我没有检查md5的每一次使用。但我认为有一种情况需要说明,该报告并不完全准确。

我不是PHPSReadSheet的开发者之一,但我对它如何使用md5功能有一些观察

在国际海事组织,报告的漏洞是误报的。确实,使用
md5()
保护数据(尤其是密码)是不合适的。但是,除了安全性之外,哈希值还有其他用途。代码扫描似乎假定md5用于加密目的。事实并非如此

只要看一下源代码,就知道在哪里使用了
md5()
。它主要用于创建具有多个属性值的对象的散列,以便比较对象及其所有属性值。我没有发现任何涉及密码或其他安全相关任务的使用

样式对象(即边框、颜色、对齐方式等)是md5哈希的常见目标。考虑一个“边框”对象。比较组合的top、right、bottom、left和diagonal值的散列要比一次遍历一个属性来比较另一个对象中相同属性的值容易得多


尽管如此,我并不认为phpspreadsheet是加密安全的,也不认为md5的每一次使用都是适当的。我没有检查md5的每一次使用。但我认为有一种情况需要说明,该报告并不完全准确。

正如DFriend已经指出的那样,PHPExcel/phpsReadSheet中使用的
md5()
(只有一个例外)并没有用于加密目的。它用于生成准唯一哈希/校验和,以便快速比较对象值


唯一的例外是验证任何Xls密码,因为MS Excel本身使用md5哈希作为其密码验证的一部分。对于您的SOC2认证,您必须向Microsoft申请。

正如DFriend已经指出的,PHPExcel/phpsReadSheet中的
md5()
未用于加密目的(只有一个例外)。它用于生成准唯一哈希/校验和,以便快速比较对象值


唯一的例外是验证任何Xls密码,因为MS Excel本身使用md5哈希作为其密码验证的一部分。对于您的SOC2认证,您必须向Microsoft咨询。

d朋友和马克·贝克感谢您澄清了一切。由于此信息直接来自开发人员,我可以将其作为假阳性提交,并详细说明原因。DFriend和Mark Baker感谢您澄清一切。由于此信息直接来自开发人员,我可以将其作为假阳性提交,并详细说明原因。