不知何故,当使用Prototype的Form.serialize()
提交复杂的表单时,我总是不确定这是否适用于所有情况。
我担心的可能问题是引用/字符串转义问题,或者提交不寻常的字符代码,任何可能导致进程混乱的问题。
所以问题是:
使用Prototype从表单收集所有数据然后通过AJAX将其发送到服务器是否安全(在客户端)是否安全?或者是否有任何已知的浏览器以这种方式发送表单的麻烦 - 或者,缺乏支持吗?
答案 0 :(得分:1)
虽然我所知道的浏览器内部都没有使用Javascript来提交表单,但是有关如何提交表单的完全详细信息已经有详细记录。
很有可能在完全遵循协议的Javascript中编写表单提交代码。另一方面,有经验的编码人员可能会错过一些边缘情况 - 例如禁用复选框控件。
我不能代表prototype
库,因为我从未使用它,但是如果有一个表单没有正确提交,或者服务器没有提交表单,那么它应该作为错误报告提交。
答案 1 :(得分:1)
我不确定你为什么原本被投票,这是一个有效的问题。
我认为真正的答案是,安全方面确实发生在后端。序列化整个表单并通过请求发送它是可以的,但您需要验证在另一方收到的信息。
例如,你不想这样做(或者用另一种语言的等价物):
(假设$form
是序列化形式)
foreach ($form as $key => $value) {
$object->$key = $value;
}
save($object);