使用原型Form.serialize()有多安全?

时间:2012-10-09 20:29:52

标签: javascript forms serialization prototypejs

不知何故,当使用Prototype的Form.serialize()提交复杂的表单时,我总是不确定这是否适用于所有情况。

我担心的可能问题是引用/字符串转义问题,或者提交不寻常的字符代码,任何可能导致进程混乱的问题。

所以问题是:

使用Prototype从表单收集所有数据然后通过AJAX将其发送到服务器是否安全(在客户端)是否安全?或者是否有任何已知的浏览器以这种方式发送表单的麻烦 - 或者,缺乏支持吗?

2 个答案:

答案 0 :(得分:1)

虽然我所知道的浏览器内部都没有使用Javascript来提交表单,但是有关如何提交表单的完全详细信息已经有详细记录。

很有可能在完全遵循协议的Javascript中编写表单提交代码。另一方面,有经验的编码人员可能会错过一些边缘情况 - 例如禁用复选框控件。

我不能代表prototype库,因为我从未使用它,但是如果有一个表单没有正确提交,或者服务器没有提交表单,那么它应该作为错误报告提交。

答案 1 :(得分:1)

我不确定你为什么原本被投票,这是一个有效的问题。

我认为真正的答案是,安全方面确实发生在后端。序列化整个表单并通过请求发送它是可以的,但您需要验证在另一方收到的信息。

例如,你不想这样做(或者用另一种语言的等价物): (假设$form是序列化形式)

foreach ($form as $key => $value) {
  $object->$key = $value;
}

save($object);