2009-06-18 2 views
2

私はUTF-8 XMLレスポンスを返していますが、いくつかの要素にはユーザが提供するコンテンツがありますので、正しくエスケープされていることを確認する必要があります。 htmlspecialchars(..., ENT_COMPAT, 'UTF-8')を使用してXML要素テキストを適切にエスケープするには十分ですか?はHTTPレスポンスでXML要素のコンテンツをエスケープするのに十分なhtmlspecialcharsですか?

答えて

1

私は正確にわかっていません... xmlはhtmlまたはhtmlをxmlの内側にしたいですか? 後者の場合は、CDATAを使用してみませんか?

<xmlelement> 
    <![CDATA[<span>John Smith</span>]]> 
</xmlelement> 
+0

そのtext/xmlレスポンス、htmlはありません。 ''はユーザーが提供しているので、CDATAの場合でも、悪意のあるユーザーがxssなどを避けるために ']]'を入力しないようにする必要があります。 –

+0

http://stackoverflow.com/questions/223652/is-there-a-way-to-escape-a-cdata-end-token-in-xmlを参照してください。その文字列を明示的にチェックして文字列を除去する必要があります。 –

0

http://www.w3.org/TR/2008/REC-xml-20081126/

2.2文字 ...

[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */ 

だから、これはタブ、CR、LFすることなく、低域<の0x20に文字を格納する方法がないことを示しています。 Additionalでは、xmlパーサは改行を正規化しなければなりません。それはCR LFをLFに変換しなければなりません。

したがって、XMLでバイナリ文字列を転送することを可能にする通常ノードもCDATAセクションもありません。あなたがそれをbase64に変換しなければならない場合、またはtransportは数字のリストのようなものです。

関連する問題