ajax与常规表单数据的安全性

Mar*_*uck 4 javascript forms ajax

只是想知道安全性的差异

<input type="hidden" name="id" value="<?php echo $id; ?>">
Run Code Online (Sandbox Code Playgroud)

jQuery(this).ajaxSubmit({
data: { id: '<?php echo $id; ?> }
});
Run Code Online (Sandbox Code Playgroud)

发送表单数据时 一种方法比另一种方法更容易受到黑客攻击吗?安全发送表单数据的最佳方法是什么,以便外人不能篡改或更改ID号?

Dav*_*vid 6

安全性没有区别.在这两种情况下,都会向服务器发送HTTP POST请求,并从服务器收到响应.除了请求中的某些标头之外,服务器甚至不知道或关心两者之间的区别.

为了说明,在提交常规表单POST和AJAX POST时,请查看浏览器调试工具(Firebug或Chrome工具)中的网络请求.两者非常接近相同,除了浏览器可能为AJAX添加另一个或两个头.

安全发送表单数据的最佳方法是什么,以便外人不能篡改或更改ID号?

没有.任何精明的用户都可以手动制作HTTP POST请求以包含他们想要的任何数据.如今,浏览器甚至还提供了方便的工具来帮助实现开发和调试.一般规则是服务器端代码永远不会隐式信任从客户端发送的请求.始终验证用户是否有权访问他们正在尝试执行的操作,数据不是恶意数据或在使用之前已正确清理(特别是在数据库查询中作为常见示例),等等.