gpt4 book ai didi

utf-8 - 如何让 Microsoft 的 AntiXss 库 URLEncode 为 URI 标准(RFC3986)而不是 IRI(RFC3987)?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:36:58 24 4
gpt4 key购买 nike

我正在使用 Microsoft AntiXss 3.1 库。我们有许多使用非拉丁文字的国际网站。我们使用的是 SEO 友好的 URL,因此我们在 URL 中包含非 ASCII 字符。

AntiXss.UrlEncode(至少在 3.1 中)将“国际字符”视为安全的,因此我们最终得到一个 IRI 而不是 URI:

http://somesite.com/ja-JP/applications/search/セキュリティ-b200009

HttpUtility.UrlEncode 为 URI (RFC3986) 生成正确的编码:

http://somesite.com/ja-JP/applications/search/%e3%82%bb%e3%82%ad%e3%83%a5%e3%83%aa%e3%83%86%e3%82%a3-b200009

但我宁愿遵循我们使用 AntiXss 库的标准。

我知道 AntiXss/WPL 4.0 已经发布(默认情况下似乎不再将国际字符视为安全字符),但它更改了 API 名称,因此我必须对我们的应用程序进行重大更改才能升级。

因此,我很乐意回答以下任何问题:

  • 如何诱使 AntiXss 执行与 Uri 标准兼容的 UrlEncode。
  • 如果我们使用 AntiXss 库的符合 IRI 的输出(这是更好的),我们可以放心,我们不会为泰国(或其他任何地方 - 我们可以测试的)旧代理服务器设置兼容性问题我们的浏览器矩阵,但不是我们和客户之间可能存在的所有中间网络设备)。
  • HttpUtility.UrlEncode 是我们应该使用的,它的安全性并不明显低于 AntiXss.UrlEncode。
  • 还有一些我没有考虑过的其他更好的解决方案。

谢谢

最佳答案

它并没有对 API 名称进行太多更改(除了 LdapEncode 之外),非常旧的名称仍然存在。事实上,方法名称与 3.5 中的相同,而且我没有删除旧的已弃用的方法名称,因此您应该能够加入并获得与 3.5 中相同的警告。

如果您确实发现 4.0 有问题,请随时打扰我.. bdorrans@那个大坏蛋域名 :)

关于utf-8 - 如何让 Microsoft 的 AntiXss 库 URLEncode 为 URI 标准(RFC3986)而不是 IRI(RFC3987)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com