保护ajax表单POST

tde*_*ecs 3 forms security ajax post

我想知道如何通过AJAX开发一个安全的表单帖子.

例如,我有:

我的HTML表单.

我的JavaScript处理提交.

提交网址为"post_data.php"

发布的数据是:

id=8&name=Denis
Run Code Online (Sandbox Code Playgroud)

PHP验证变量id和name是否为POSTED及其数据类型.如果可以的话,继续在数据库上做一些事情.

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

想象一下,数据确实存在于我的数据库中,这可能很糟糕.

谢谢

Tom*_*han 7

一种非常常见的方法是<hidden>在表单上的字段中包含某种令牌,并将相同的令牌保存在服务器上的会话变量(或其他位置)中.提交帖子后,您将检查令牌是否有效.

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

例如,这是ASP.NET MVC中对此的内置支持是如何工作的.