2010-10-24 33 views
1

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

Répondre

0

Il n'a pas changé les noms d'API bien (à part LdapEncode), les très anciens sont toujours en place. En effet les noms de méthodes sont les mêmes qu'en 3.5, et je n'ai pas enlevé les anciens obsolètes, donc vous devriez être capable d'y aller et d'obtenir les mêmes avertissements qu'avec 3.5.

Si vous trouvez que vous avez des problèmes avec la version 4.0 alors n'hésitez pas à m'embêter ... bdorrans @ ce gros nom de domaine bad borg :)