Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用原型Form.serialize()有多安全?_Javascript_Forms_Serialization_Prototypejs - Fatal编程技术网

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

Javascript 使用原型Form.serialize()有多安全?,javascript,forms,serialization,prototypejs,Javascript,Forms,Serialization,Prototypejs,不知何故,当使用Prototype的Form.serialize()提交复杂表单时,我总是觉得有点不确定这是否在所有情况下都有效 我担心的可能问题是引号/字符串转义问题,或者可能是提交不寻常的字符代码,任何可能会扰乱流程的事情 因此,问题是: 使用Prototype从表单收集所有数据然后通过AJAX发送到服务器是否安全(在客户端),或者是否有已知的浏览器无法以这种方式发送表单,或者可能缺乏对它的支持?而我所知的浏览器内部没有使用Javascript提交表单,关于表格应如何提交的详细信息有很好的文

不知何故,当使用Prototype的
Form.serialize()
提交复杂表单时,我总是觉得有点不确定这是否在所有情况下都有效

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

因此,问题是:


使用Prototype从表单收集所有数据然后通过AJAX发送到服务器是否安全(在客户端),或者是否有已知的浏览器无法以这种方式发送表单,或者可能缺乏对它的支持?

而我所知的浏览器内部没有使用Javascript提交表单,关于表格应如何提交的详细信息有很好的文档记录

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


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

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

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

例如,您不想这样做(或其他语言中的等效语言): (假设
$form
是序列化表单)


如果有人能向我解释为什么我的问题被否决,这将有助于我理解问题的症结所在。这样,我以后就可以避免提出不适合社区的问题。谢谢。我不是反对者,但你的问题不是很清楚。我不知道你在问什么,我明白。我将尝试改进它。只要
表单
标记格式正确(双关语!),就应该没有问题。您似乎在问任何版本的表单序列化程序在任何浏览器中是否都可能有任何问题。我要冒险说“是的”可能在某个地方有问题。谢谢你的意见。起初我的问题是针对任何图书馆的,而且是一系列的问题,而不是一个具体的问题。所有的答案都是有意义的,而且信息丰富。我选择了你的,因为你为一个可能的问题(禁用的复选框控件)提供了另一个例子,你解决了这个问题,清楚地表明,在Prototype进行的多年的主动使用测试中,像这样的错误现在已经出现了。
foreach ($form as $key => $value) {
  $object->$key = $value;
}

save($object);