Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Utf 8 如何获取Microsoft';s AntiXss库是否将URL编码为URI标准(RFC3986)而不是IRI(RFC3987)?_Utf 8_Urlencode_Seo_Antixsslibrary - Fatal编程技术网

Utf 8 如何获取Microsoft';s AntiXss库是否将URL编码为URI标准(RFC3986)而不是IRI(RFC3987)?

Utf 8 如何获取Microsoft';s AntiXss库是否将URL编码为URI标准(RFC3986)而不是IRI(RFC3987)?,utf-8,urlencode,seo,antixsslibrary,Utf 8,Urlencode,Seo,Antixsslibrary,我正在使用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): 但我宁

我正在使用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):

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

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

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

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

感谢

它没有对API名称进行太多的更改(除了LdapEncode),非常旧的名称仍然存在。实际上,方法名称与3.5中的名称相同,并且我没有删除旧的不推荐名称,因此您应该能够访问并获得与3.5相同的警告

如果你发现自己在4.0上有问题,请随时给我发牢骚..b域名:)

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