2011-06-28 5 views
0

私のプロセスは、次のようになります。HTMLとJavaScriptとJson =どのようにしていつエンコードするのですか?

1.) Server: Encode the content as HTML (=using StringEscapeUtils from apache commons) 
2.) Server: Encode the content as JavaScript (=using StringEscapeUtils from apache commons) 

3.) Server: Marshall via Jackson JSON library 

4.) Transfer via JSON 

5.) Client display via JQuery in the webpage (via the $ajax() call) 

は正しい上記のプロセスですか?最初のHTMLエンコーディングとJavaScriptエンコーディング

コンテンツをJavaScriptでエンコードする必要がありますか?私が知る限り、ジャクソンは正しくコンテンツをエンコードし、Jqueryは安全でないJavaScriptコンテンツでさえも解析できますか?だから私はJavaScriptのエンコーディングをドロップすることができます、これは正しいですか?

ありがとうございました! Markus

答えて

1

あなたは何を埋め込んでいますか?

埋め込み対象が、JavaScriptに埋め込まれたHTMLに埋め込まれたプレーンテキストです(例: document.write("your text here") JSエンコードする前にHTMLエンコードする必要があります。

埋め込み対象がJavaScriptに埋め込まれたプレーンテキストで、HTMLに埋め込まれている場合(例: <button type=button onclick="alert('your text here')">それからあなたは逆の順序でそれを行う必要があります。

これは型問題として考えることができます。文字列がstring<plain_text>で、"<a ...>" + myPlainTextString + "</a>"の場合はstring<html>という3つの文字列を追加しようとしており、正しく行うにはプレーンテキスト文字列をstring<html>にエンコード/キャストする必要がありますので、"<a ...>" + htmlEncode(myPlainTextString + "</a>"です。

このように推論すると、3層の埋め込みは、3層の型キャストとまったく同じです。今では、言語タイプのシステム設計者に、この種のものの小切手を組み立てることを納得させることができればいいのです。

関連する問題