繁体   English   中英

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

[英]How safe is it to use prototypes Form.serialize()?

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

我担心的可能问题是引用/字符串转义问题,或者提交不寻常的字符代码,任何可能搞乱这个过程的东西。

所以问题是:

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

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

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

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

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

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

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

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

save($object);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM