0

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

我担心的可能问题是引号/字符串转义问题,或者可能是提交不寻常的字符代码,任何可能扰乱流程的事情。

所以问题是:

使用 Prototype 从表单中收集所有数据然后通过 AJAX 将其发送到服务器是否安全(在客户端),或者是否有任何浏览器已知在以这种方式发送表单时存在问题 - 或者可能缺乏支持为了它?

4

2 回答 2

1

虽然我知道没有浏览器在内部使用 Javascript 来提交表单,但应该如何提交表单的确切细节都有很好的文档记录。

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

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

于 2012-10-09T20:52:56.070 回答
1

我不确定你为什么最初被否决,这是一个有效的问题。

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

例如,您不想这样做(或其他语言的等价物):(假设$form是序列化形式)

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

save($object);
于 2012-10-09T20:53:09.230 回答