2010-05-22 49 views
3

我想知道如何通过AJAX开发一个安全的表单发布。安全ajax表单POST

例如,我有:

我的HTML表单。

我的JavaScript处理提交。

的提交网址是 “post_data.php”

张贴的数据是:

ID = 8 &名=丹尼斯

的PHP验证是否变量ID和姓名张贴及其数据类型。如果这是好的,那就继续在数据库上做一些事情。

我的问题是,我该如何防止某人在我的网站之外创建自己的html表单,或者其他方法,并将错误的数据发布到我的PHP脚本中?

想象一下,数据真的存在于我的数据库中,这可能是不好的。

感谢

回答

7

一种非常常见的方式做,这是你的服务器上有包含在窗体上的<hidden>场某种象征,同样一个保存在一个会话变量(或其他地方) 。提交帖子后,您检查该令牌是否有效。

其他人仍然可以伪造一个令牌,但他们不能(以任何简单的方式,至少)迫使您在服务器上保存相同的令牌,所以不会接受其他任何形式的接受。

例如,这是如何在ASP.NET MVC中对此进行内置支持的。

1

令牌方法可能是最有效的方法。有了这些说法,即使有了这些其他安全措施,也不应该假定数据来自您自己的表单。验证数据总是很重要。