2016-09-13 3 views
0

Ich habe ein HTML-Formular:Senden von XML-Daten im versteckten Feld. Ist es sicher?

<form> 
<input type="hidden" id="hiddenField"/> 
...Other form fields 
</form> 

In dieser Form ich ein verstecktes Feld mit XML-Daten festlegen möchten. Kann jemand vorschlagen, wenn es in Ordnung ist, das versteckte Feld direkt mit XML-Daten zu setzen. in meiner Javascript-Funktion ist es sicher, das versteckte Feld mit xml wie: $(#hiddenFiled).val(xml); direkt zu setzen und die XML in meinem Java-Servlet zu erhalten? Bitte schlagen Sie vor. Kein

Antwort

0

Sie können nicht xml halten, ohne kodieren Sie können entscheiden, entweder

var stringValue=escape(xml); 
var xmlValue= unescape (stringValue) 

in Javascript

Obwohl dieser Methoden ist in neueren Versionen abgeschrieben worden, so dass Sie es in einer anderen Bibliothek wie http://underscorejs.org/#escape finden konnten, UnderScoreJs

Halten Sie XML auch nicht in einem versteckten Feld, wenn es vertrauliche Informationen enthält.

+0

Danke für die Antwort. Nein, die XML-Datei enthält keine vertraulichen Informationen. Wenn ich richtig verstehe, ist dein Vorschlag, xml zu entkommen und es dann in verstecktes Feld wie zu setzen: var escortedXml = escape (xml); $ (# hiddenFiled) .val (escapedXml); Bitte bestätigen Sie, wenn ich richtig verstanden habe. Auch brauchen wir einen Mechanismus, um es in Servlet zu dekodieren, nachdem es von request.getParameter bekommen? – Jeets

0

Versteckte Formularfelder sind nicht für Sitzungsverfolgung geeignet.

Wir haben zwei Mechanismen für Session-Tracking, sie sind Cookies und URL-Rewriting, die neuesten für die Menschen, die Cookies in ihren Browsern nicht aktiviert hat, konnte ich nur verstehen, eine Session-ID in einem versteckten Feld zu senden Ihr eigener Session-Tracker und verwenden Sie nicht den, der bereits mit Ihrem Server-Container ist (HttpSession und alle), aber warum das Rad neu erfinden?

Versteckte Felder sind für Informationen zwischen den Seiten vorbei, manchmal benutze ich ein und ich möchte nicht eindeutig, dass die Informationen für den Benutzer angezeigt

0

Posting XML ohne javascript oder Browser-Plugins ist unmöglich. Sie sollten es nicht direkt als Formularparameter senden. See this answer for more info:.

Verwenden Sie eine Bibliothek, die encode sie beim Senden an Server und decode sie auf der Serverseite würde.

Underscore.js bietet solche Funktionalität. Siehe die documentation:

escape_.escape (string)
einen String zum Einfügen in HTML, ersetzt &, <,>,“, 'und' Zeichen

_.escape('Curly, Larry & Moe'); 
=> "Curly, Larry &amp; Moe" 
.

unescape_.unescape (string)
Das Gegenteil von escape, ersetzt &, <, >, ", ` und ' mit ihren unescaped Pendants.

_.unescape('Curly, Larry &amp; Moe'); 
=> "Curly, Larry & Moe" 

jedoch nicht bedenken Sie, dass in der Regel Browser Grenzen über die Menge an Daten, die Sie durch GET Anfrage (rund 255 Byte) senden können. Daher ist es immer eine gute Option, POST anstelle von GET zu verwenden, auch wenn Sie codierte XML senden.

Verwandte Themen