J'utilise la bibliothèque Microsoft AntiXss 3.1. Nous avons un certain nombre de sites internationaux qui utilisent des scripts non latins. Nous utilisons des URL conviviales pour le référencement. Nous avons donc des caractères non-ASCII qui se retrouvent dans l'URL.Comment obtenir la bibliothèque AntiXss de Microsoft à URLEncode à la norme URI (RFC3986) au lieu d'un IRI (RFC3987)?
AntiXss.UrlEncode (au moins en 3.1) traite « des caractères internationaux » comme sûrs, donc nous nous retrouvons avec un IRI au lieu d'un URI:
http://somesite.com/ja-JP/applications/search/セキュリティ-b200009
HttpUtility.UrlEncode génère le codage correct pour un 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
mais je préfère suivre notre standard d'utilisation de la bibliothèque AntiXss. Je sais que l'AntiXss/WPL 4.0 a été publié (et ne semble plus traiter les caractères internationaux comme étant sûrs par défaut), mais il a changé les noms d'API, donc je dois apporter des changements importants à notre application mettre à niveau.
Donc, je serais heureux avec une réponse à l'une des façons suivantes:
- Comment amadouer AntiXSS faire un UrlEncode qui est compatible avec la norme Uri. Certains rassurent que si nous allons avec la sortie conforme à IRI de la bibliothèque AntiXss (ce qui est préférable), que nous ne nous installons pas pour des problèmes de compatibilité avec les anciens serveurs proxy en Thaïlande (ou ailleurs - nous pouvons tester contre notre matrice de navigateur, mais pas tous les équipements de réseau intermédiaires qui pourraient exister entre nous et nos clients).
- HttpUtility.UrlEncode est ce que nous devrions utiliser et n'est pas notablement moins sécurisé que AntiXss.UrlEncode.
- Il existe une autre meilleure solution que je n'ai pas envisagée.
Merci