2009-05-11 6 views
1

Nous avons un problème dans un serveur spécifique. Tous les signes plus affichés dans l'application sont remplacés par des espaces - c'est-à-dire dans POST et GET, et sur toutes les pages de ce site.
En cas de test j'avoir cette petite page (c'est un serveur ASP):% 2B décodage à un espace au lieu d'un plus

<html> 
<body> 
    <form method="post"> 
    <input type="text" name="Plus" id="Plus" /> 
    <input type="submit" /> 
    </form> 
    Previous Value: <%= request("Plus") %><br /> 
    Query String: <%= request.querystring %> 
</body> 
</html> 

Sur tous les autres serveurs cela fonctionne bien, mais sur un serveur de points positifs sont remplacés par des espaces.
Exemple: pour l'entrée "1 2+3" - request ("Plus") est "1 2 3" et la chaîne de requête est "1+2+3". Pas bien. Les autres caractères semblent décoder correctement.
Il faut dire que quelqu'un a essayé de "durcir" ce serveur contre les attaques, donc des options IIS obscures peuvent être activées (bien que nous ayons supprimé le filtre ISAPI).
Merci.


MISE À JOUR: Il se trouve qu'il ya un autre filtre installé, le filtre d'injection SQL ISAPIClipSQLInjection.dll de http://www.codeplex.com/IIS6SQLInjection.
Le filtre est bogué - il remplace les caractères valides de POST et GET:

  1. les signes plus sont remplacés par des espaces: "1% 2B2" -> "1 + 2", même que "1 2"
  2. Les points-virgules sont remplacés par des virgules: "bonjour"; -> "bonjour",

Une nouvelle version du filtre (2.0b) ne corrige pas cela, mais permet d'exclure certaines pages. Depuis qu'il est installé en production, nous avons décidé de ne pas supprimer le filtre, nous avons utilisé javascript pour modifier tous les avantages à "&#43 " (avec espace et pas un point-virgule).
Pas la solution optimale, mais c'est ce que le patron voulait.

Répondre

1

Envisager Code Ascii. À la place d'un signe plus utiliser son code ASCII. Ce serait chr (43). Les deux asp et sql le comprendraient.

Voici une table avec tous les codes ASCII. http://www.asciitable.com/

+0

Ce n'est pas une excellente solution, mais cela fonctionne. Je vais accepter votre solution parce que ce petit patch est ce que nous avons fait finalement. Merci quand même. – Kobi

+0

Pour ne pas devenir trop personnel, mais j'ai remarqué que vous vivez en Israël. Comment est-ce là-bas aussi loin que la vie. Est-ce aussi mauvais que nos médias le décrivent? Je veux y aller bientôt parce que j'aime la culture et les gens. – Eric

+0

C'est très amusant, mais ce n'est pas vraiment l'endroit pour en parler. N'hésitez pas à me contacter par n'importe quel moyen (mon blog a quelques liens) – Kobi

Questions connexes