首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将微软的AntiXss库转换为URLEncode的URI标准(RFC3986)而不是IRI (RFC3987)?

如何将微软的AntiXss库转换为URLEncode的URI标准(RFC3986)而不是IRI (RFC3987)?
EN

Stack Overflow用户
提问于 2010-10-24 04:12:57
回答 1查看 856关注 0票数 1

我使用的是微软AntiXss 3.1库。我们有一些使用非拉丁文字的国际网站。我们使用SEO友好的URL,所以我们有非ASCII字符在URL中结束。

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

代码语言:javascript
复制
http://somesite.com/ja-JP/applications/search/セキュリティ-b200009

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

代码语言:javascript
复制
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。
  • 有一些保证:如果我们使用符合IRI的AntiXss库输出(这更好),我们就不会在泰国(或其他任何地方)的旧代理服务器上设置可兼容性问题--我们可以使用浏览器矩阵进行测试。但是,并不是我们和customers).
  • HttpUtility.UrlEncode之间可能存在的所有中间网络设备都是我们应该使用的设备,而且并不比AntiXss.UrlEncode.
  • There's安全得多,这是我没有考虑过的其他更好的解决方案。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-25 15:51:11

它并没有改变API名称那么多(除了LdapEncode),非常老的名称仍然存在。实际上,方法名称与3.5中的名称相同,而且我还没有删除旧的弃用名称,因此您应该可以顺其自然地收到与3.5相同的警告。

如果你发现你在4.0上有问题,那就去烦我吧。bdorrans@那个糟糕的borg域名:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4007153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档