proteger du texte dans un xml

proteger du texte dans un xml - Java - Programmation

Marsh Posté le 20-02-2006 à 00:44:25    

Bonjour!!
 
Je fait un chat et le protocole est en xml. J'insere donc du texte des utilisateurs dans mon flux xml. Ya t'il une fonction qui protege ce texte pour eviter des injections xml?
 
Merci


Message édité par milootooloo le 20-02-2006 à 09:59:42
Reply

Marsh Posté le 20-02-2006 à 00:44:25   

Reply

Marsh Posté le 20-02-2006 à 01:04:12    

ta bibliothèque de génération de XML doit le faire toute seule normalement

Reply

Marsh Posté le 20-02-2006 à 01:09:29    

nraynaud a écrit :

ta bibliothèque de génération de XML doit le faire toute seule normalement


 
Ha.. c'est qu'en faite pour generer mon xml, je le genere pas vraiment.. je l'envoie comme ca, enfin c'est moi qui le construit. C'est grave?


Message édité par milootooloo le 20-02-2006 à 01:10:29
Reply

Marsh Posté le 20-02-2006 à 01:13:21    

oui, car une bibliothque ferait ça bien mieux que toi, entre autre à cause du problème que tu cites. (mais aussi pour l'encoding, la DTD etc.)

Reply

Marsh Posté le 20-02-2006 à 01:17:59    

nraynaud a écrit :

oui, car une bibliothque ferait ça bien mieux que toi, entre autre à cause du problème que tu cites. (mais aussi pour l'encoding, la DTD etc.)


 
Ok, mais heu.. pour décoder, j'utilise SAX.. pour encoder.. t'a une idée de ce que je pourrais utiliser?
Encore merci.

Reply

Marsh Posté le 20-02-2006 à 01:43:49    

hum, je viens de regarder, sax ne fait que du parsing, et JAXP n'offre rien pour les étages de sortie ([:kiki])
il te reste donc DOM qui est chiant et JDOM qui se prétend moins chiant mais qui est une biblothèque externe.
 
Je dois t'avouer que je trouve ça très con de leur part de ne pas avoir fait une API symétrique de SAX pour l'output de XML

Reply

Marsh Posté le 20-02-2006 à 01:45:58    

y'a aussi dom4j :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-02-2006 à 01:46:13    

et xpp3 :o mais c'est pour l'élite ça :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 20-02-2006 à 09:54:04    

Ha oui mais j'ai un ptit problème avec ca!
 
C'est que entre mes socket, je fait transiter des lignes (J'utilise la méthode getLine sur mon inputstream). Ca va me faire plein de lignes ca! Ya un moyen apres pour différencier deux envois de chaines séparés ou alors je dois re-bidouiller mon parseur pour qu'il puisse traiter plusieurs messages à la suite?


Message édité par milootooloo le 20-02-2006 à 10:03:37
Reply

Marsh Posté le 20-02-2006 à 11:32:33    

il ne faut pas envoyer des lignes !!!


---------------
trainoo.com, c'est fini
Reply

Marsh Posté le 20-02-2006 à 11:32:33   

Reply

Marsh Posté le 20-02-2006 à 12:37:33    

Ok pour les lignes, ca ira je pense.
J'ai fai comme tu m'a dit. J'ai construit un arbre de ma requete xml, mais je ne trouve pas comment la transformer en string. (j'ai fait ca avec DOM). T'a une idée??

Reply

Marsh Posté le 21-02-2006 à 11:07:48    

Je ne sais pas si y'a plus simple mais ça marche bien.
 

Code :
  1. public static String DOM2String(Document document)
  2.     {
  3.         try
  4.         {
  5.             Source source = new DOMSource(document);
  6.             StringWriter stringWriter = new StringWriter();
  7.             Result result = new StreamResult(stringWriter);
  8.             TransformerFactory factory = TransformerFactory.newInstance();
  9.             Transformer transformer = factory.newTransformer();
  10.             transformer.transform(source, result);
  11.             String strRetour = stringWriter.getBuffer().toString();         
  12.             stringWriter.close();
  13.             return strRetour;
  14.         }
  15.         catch (Exception e)
  16.         {
  17.             ....ERREUR....
  18.         }
  19.         return "";
  20.     }


 
Je pense que ça changeras pas ton probleme, parce que ton envoi dans le socket sera "en clair"  ( le texte du xml generé ).
Si j'ai bien compris, tu veux que le transfert sur le réseaux soit protegé ?
Le mieux est surement de crypter les envois, en cryptant la chaine XML avant de l'envoyer sur le réseau; et donc de la décrypter à la reception avant de parser le XML.
Un bon vieux cryptage XOR  (tres bas de gamme) pourrais faire l'affaire dans un premier temps...
 
[REFLECHISSEMENT]
ok, j'ai relus ton premier message, je n'avais donc pas bien compris - j'ai quand meme laissé mon texte, ça peut peut etre te donner une idée... -
 
Ton texte avec injection de xml devrait etre entre <![CDATA[....]]> dans le xml je pense, non ?
Sinon, tu peux toujours remplacer les > et < par d'autre caracteres dans le texte et les remettre à la reception.
 
[FIN-REFLECHISSEMENT]

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed