Gli attributi XML possono essere sfruttati?

3

sul mio sito web fornisco un xml, mentre i parametri GET saranno aggiunti come attributi (entità-codificati) da qualche parte nel xml.

esempio ridotto:

http://host/file.xml?x=y

conduce a

<root>
  <element x="y" />
</root>

tieni presente che la stringa è codificata come entità HTML, quindi non puoi sfuggire alle virgolette. una stringa come questa

"/>

conduce a

&quot;/&gt;

ma potrebbe essere sfruttato in un altro modo?

    
posta clamp 18.02.2014 - 10:47
fonte

1 risposta

3

Non ci hai fornito informazioni su come l'XML viene usato / analizzato in seguito. Ancora ho due punti su questo:

  • Usando qualcosa come http://host/file.xml?a=b%20x=y qualcuno sarà in grado di aggiungere un attributo aggiuntivo a seconda di come gestisci l'output, questo potrebbe essere un problema. Inoltre alcuni parser prendono la prima occorrenza di un attributo, alcuni l'ultimo e alcuni addirittura concatenano i valori con la stessa chiave. Che dire di http://host/file.xml?x=z%20x=y che può risultare in qualcosa come <element x=z x="y" /> (ovviamente dipende anche da quanto sia rigoroso il parser e quali valori sono accettati per x .
  • A seconda del parser, potrebbero esserci modi per codificare caratteri come "/> quando li si invia alla propria applicazione senza che siano codificati come entità HTML.

Se fornisci ulteriori informazioni, potremmo essere in grado di darti una risposta più specifica. Ad ogni modo, raccomando vivamente di non inserire un input utente non controllato in alcun XML. Se davvero necessario, dovresti almeno usare un qualche tipo di filtro (il migliore sarebbe una whitelist di valori accettati o almeno una regex per ciò che vuoi accettare). Inoltre, al parser XML dovrebbe essere fornito uno schema per convalidare l'XML.

    
risposta data 18.02.2014 - 20:47
fonte

Leggi altre domande sui tag