问题标签 [canonicalization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
13593 浏览

representation - 规范表示的含义及其对网站的潜在漏洞

我在 google 上搜索了规范表示的含义,并找到了完全太神秘的文档。谁能提供关于规范表示的快速解释,以及网站中针对规范表示攻击的一些典型漏洞是什么?

0 投票
4 回答
11077 浏览

c# - 在 C# 中生成 XML 文档哈希

在 C# 中散列 XML 文档的最佳方法是什么?我想散列一个 XML 文档,以便我可以判断它是否是从生成时手动更改的。我没有将其用于安全性——如果有人更改 XML 并更改哈希以匹配,那也没关系。

例如,我将散列根的子节点并将散列存储为根的属性:

0 投票
1 回答
1898 浏览

validation - 验证 WCF 签名的 SOAP 消息

我在验证 SOAP 消息时间戳和正文时遇到问题。

在开始编写任何代码之前,我试图自己验证它,这些是我验证时间戳所遵循的步骤:

1)提取时间戳标签,添加任何使用的命名空间并将其写入文件:

2) 使用 xmllint 对其进行规范化

3) 使用 openssl 获取文件的 SHA-1 摘要

4)uudecode时间戳参考(jGZkqCNLTnUfbdpoFn19LSYkhts=)的base64 DigestValue并用十六进制编辑器打开

5) DigestValue的二进制值与规范化 xml 片段的 sha1 不同。

我究竟做错了什么?

这是完整的 SOAP 请求:

0 投票
2 回答
100 浏览

http - 比较搜索机器人的 URI?

对于搜索机器人,我正在设计:
* 比较 URI 并
* 确定哪些 URI 确实是同一个页面

处理重定向和别名:
案例 1:重定向
案例 2:别名,例如 www
案例 3:URL 参数,例如 sukshma.net/node#parameter

我可以采用两种方法,一种方法是显式检查重定向以捕获案例 #1。另一种方法是“硬编码”别名,例如 www,适用于案例 #2。第二种方法(硬编码)别名很脆弱。HTTP 的 URL 规范没有提到使用 www 作为别名 (RFC 2616)

我还打算使用规范元标记 (HTTP/HTML),但如果我理解正确 - 我不能依赖标记在所有情况下都存在。

请分享您自己的经验。您知道用于检测搜索机器人中的重复项的参考白皮书实现吗?

0 投票
2 回答
2157 浏览

code-analysis - CAT.NET“在将文件路径传递给文件系统例程之前对其进行清理”消息

我正在使用 CAT.NET 代码分析分析我的代码(C#、桌面应用程序),并在处理文件名时收到“在将文件路径传递给文件系统例程之前对其进行清理”消息。我不明白的是,为了确保文件名有效,我使用:

解决无效文件名问题不是“神奇的解决方案”吗?我在这里读过类似的东西(第一个答案),但就我而言,我只处理本地文件,嗯,一些非常基本的东西,所以......

那么为什么我会收到此消息以及如何避免收到此消息?

0 投票
2 回答
4648 浏览

php - 哪个是正确的 XML 专有规范化?

我正在使用xmlseclibs尝试签署 SOAP 文档,但它似乎并没有以相同的方式规范化事物,具体取决于我是在签名还是验证。

我给你举个例子。这是我要签名的 XML:

我得到了一些在 PHP 中工作的代码,以使用公钥和私钥证书的组合对其进行签名,它似乎可以工作。它为<ds:Signature>元素添加了所有适当的东西,看起来很棒。但后来我在签名后立即尝试验证它,再次使用 xmlseclibs(和公钥证书)对其进行了测试,但验证失败。因此,完全相同的代码库正在执行签名和验证,但是由于某种原因这两个进程不同意。

我向 xmlseclibs 添加了一些调试代码以了解它在做什么,并且我意识到它提供的签名密钥和提供的验证密钥不同的原因是因为它在两种情况下对事物进行了不同的规范化。当我告诉它签署<samlp:Response>元素时,这是它签署的规范形式(为了便于阅读,我在此处添加了换行符):

但是,当它验证签名时,这是它计算验证的规范形式(再次,我在这里添加了换行符):

如您所见,这个版本省略了元素中的xmlns:saml属性<samlp:Response>,而第一个版本没有。(请注意,这与xmlns:samlp属性不同,后者包含在两者中。)这看起来很明显就像 xmlseclibs 中的一个错误,但尽管如此,如果我知道哪种规范形式是正确的,我很乐意自己修复它. 是否应该通过排他规范化省略该属性?还是应该包括在内?哪一种是正确的排他规范形式?

0 投票
1 回答
4916 浏览

wordpress - Wordpress 自动生成的“规范”链接 - 如何添加自定义 URL 参数?

有谁知道如何修改 Wordpress 规范链接以添加自定义 URL 参数?

我有一个 Wordpress 网站,其中有一个查询单独(非 Wordpress)数据库的页面。我传递了 URL 参数“pubID”来显示单个书籍,它工作正常。

示例:http ://www.uglyducklingpresse.org/catalog/browse/item/?pubID=63

但是各个书页没有在 Google 中正确显示 - ?pubID 参数已被删除。

我想这可能是因为所有项目页面在源代码中都有相同的自动生成的“规范”URL 链接标签——一个去掉了“pubID”参数的标签。

示例:链接 rel='canonical' href=' http://www.uglyducklingpresse.org/catalog/browse/item/ '

有没有办法编辑 .htaccess 以向 Wordpress 添加自定义 URL 参数,以便该参数不会被永久链接和“规范”链接剥离?

或者也许还有另一种解决方案......谢谢您的任何想法!

0 投票
1 回答
1350 浏览

java - 如何规范化 Stax XML 对象

我想规范化一个 Stax 对象,它使用 DOM 执行的程序,但 dom 无法管理大型 XML 文档(如 1GB),所以 STAX 是解决方案。

我拥有的代码是:

它的想法是用 Stax 做下面的代码......

谢谢 :)

0 投票
2 回答
797 浏览

windows - Windows:如何将文件规范化到特殊文件夹?

我想为用户保留一些文件名(例如最近的文件)。

让我们使用六个示例文件:

  • c:\Documents & Settings\Ian\My Documents\Budget.xls
  • c:\Documents & Settings\Ian\My Documents\My Pictures\Daughter's Winning Goal.jpg
  • c:\Documents & Settings\Ian\Application Data\uTorrent
  • c:\Documents & Settings\All Users\Application Data\Consonto\SpellcheckDictionary.dat
  • c:\Develop\readme.txt
  • c:\Program Files\Adobe\Reader\WhatsNew.txt

我现在正在硬编码特殊文件夹的路径。如果用户重定向他们的文件夹、漫游到另一台计算机或升级他们的操作系统,路径将被破坏:

我想成为一名优秀的开发人员,并将这些硬编码的绝对路径转换为相应特殊文件夹中的相对路径:

  • %CSIDL_Personal%\Budget.xls
  • %CSIDL_MyPictures%\Daughter's Winning Goal.jpg
  • %CSIDL_AppData%\uTorrent
  • %CSIDL_Common_AppData%\Consonto\SpellcheckDictionary.dat
  • c:\Develop\readme.txt
  • %CSIDL_Program_Files%\Adobe\Reader\WhatsNew.txt

困难在于同一个文件可以有多种表示形式,例如:

  • c:\Documents & Settings\Ian\My Documents\My Pictures\Daughter's Winning Goal.jpg
  • %CSIDL_Profile%\My Documents\My Pictures\Daughter's Winning Goal.jpg
  • %CSIDL_Personal%\My Pictures\Daughter's Winning Goal.jpg
  • %CSIDL_MyPictures%\Daughter's Winning Goal.jpg

另请注意,在 Windows XP 中,我的图片存储 My Documents

但在 Vista/7 上它们是分开的:

注意:我意识到语法 %CSIDL_xxx%\filename.ext无效;Windows 不会像环境字符串那样扩展这些关键字。我只是用它来问这个问题。在内部,我显然会以其他方式存储项目,也许作为CSIDL 项 和路径的尾部,例如:

问题变成了,如何尽可能多地使用相对于规范特殊文件夹的路径?


我在想:

也可以看看

0 投票
4 回答
8302 浏览

c# - 如何在 C# 中使用 XmlDsigC14NTransform 类

我正在尝试通过使用System.Security.Cryptography.Xml.XMLDsigC14nTransformc# .net Framework 2.0 类来规范化 xml 节点。

该实例需要三种不同的输入类型,NodeList、Stream 和 XMLDocument。我尝试使用所有这些输入类型进行转换,但得到不同的结果。我真正想做的是规范化单个节点,但正如您在输出文件中看到的那样,输出不包含任何内部 xml.xml。

非常感谢有关规范化 XML 节点的正确方法的任何建议。最好的,

标志.xml

Child1.xml

文档.xml

ms.xml

ms2.xml