go encoding/xml: document why round-trip stability is not guaranteed

0x6upsns  于 2个月前  发布在  Go
关注(0)|答案(3)|浏览(30)

encoding/xml 为什么不保证往返稳定性是非常不明显的。当这是一个问题时,软件包文档应该解释原因,并告知用户应该采取什么措施。

3b6akqbq

3b6akqbq1#

谢谢。文档更改不需要经过提案过程,因此将其改为普通问题。

qv7cva1a

qv7cva1a2#

请注意,虽然我不知道详细信息,但这不一定适合包文档。它可能更适合博客文章。

xfb7svmp

xfb7svmp3#

关于类似这样的内容?
警告:encoding/xml 包不保证往返稳定性。如果使用encoding/xml 对XML文档进行标记化,序列化标记,然后重新解析生成的文档,结果中的标记流可能与原始的不同。因此,encoding/xml 不应用于需要往返稳定性的应用,如XML-DSIG和SAML。在这些应用中滥用encoding/xml 导致了过去的安全漏洞,不支持。有关详细信息,请参阅<插入博客文章>。
需要往返稳定性的应用应使用提供此类保证的第三方库。根据它们的维护者,以下库已为此目的设计。<插入列表>。请注意,这些库由第三方维护,不受Google、Go项目或Go安全团队的支持。
encoding/xml 的其他用途是受安全支持的。例如,如果恶意XML导致encoding/xml 恐慌、损坏内存或消耗过多资源,则被认为是安全漏洞。
这实际上引发了另一个问题:encoding/xml 是否保证具有确定性?检测往返不匹配的一种方法是序列化文档并重新解析,然后检查重新解析的文档是否与原始文档相同。这是充分的缓解措施吗?

相关问题