在隐藏字段中发送xml数据。这样安全吗?

时间:2016-09-13 05:22:24

标签: java html xml

我有一个HTML格式:

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

在这种形式中,我想用xml数据设置一个隐藏字段。 任何人都可以建议是否可以直接使用xml数据设置隐藏字段。 即在我的javascript函数中,使用xml直接设置隐藏字段是安全的,如:$(#hiddenFiled).val(xml);并在我的java servlet中获取xml吗?请建议。

3 个答案:

答案 0 :(得分:0)

如果没有编码,你不能保留xml 您可以选择

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

在javascript中

虽然这些方法已在较新版本中弃用,但您可以在其他库中找到它,例如http://underscorejs.org/#escape UnderScoreJs

如果XML包含敏感信息,也不要将XML保留在隐藏字段中。

答案 1 :(得分:0)

隐藏的表单字段不适用于会话跟踪。

我们有两种会话跟踪机制,它们是cookie和URL重写,最新的是没有在浏览器中启用cookie的人,我只能理解当你在隐藏字段中发送会话ID有你自己的会话跟踪器,并没有使用已经与你的服务器容器(HttpSession和所有)的那个,但为什么重新发明轮子?

隐藏字段用于在页面之间传递信息,有时我使用a,我显然不希望向用户显示该信息

答案 2 :(得分:0)

发布不带javascript或浏览器插件的XML是不可能的。您不应将其直接作为表单参数发送。 See this answer for more info:

使用在发送到服务器时encode的库,以及在服务器端decode的库。

Underscore.js提供此类功能。请参阅documentation

  

<强> escape_.escape(字符串)
  转义字符串以插入HTML,替换&amp;,&lt;,&gt;,“,”和“字符。

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

<强> unescape_.unescape(字符串)
  与逃避相反,用未转义的对手替换&amp;,&lt;,&gt;,“,”和'。

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

但是,请记住,浏览器通常会限制您可以通过GET请求发送的数据量(大约255个字节)。因此,即使发送已编码的POST,使用GET代替XML始终是一个不错的选择。