我想知道如何通过AJAX开发一个安全的表单帖子。
例如,我有:
我的HTML表单。
我的JavaScript处理提交。
提交网址为“post_data.php”
发布的数据是:
id=8&name=Denis
PHP验证变量id和name是否为POSTED及其数据类型。如果可以的话,继续在数据库上做一些事情。
我的问题是,如何阻止某人在我的网站外创建自己的html表单,或者其他什么,并将错误数据发布到我的PHP脚本?
想象一下,数据确实存在于我的数据库中,这可能很糟糕。
由于
答案 0 :(得分:7)
执行此操作的一种非常常见的方法是在表单上的<hidden>
字段中包含某种令牌,并将相同的令牌保存在服务器上的会话变量(或其他位置)中。提交帖子后,您将检查该令牌是否有效。
其他人仍然可以伪造一个令牌,但他们不能(以任何简单的方式,至少)强迫您在服务器上保存相同的令牌,因此不会接受除您自己以外的其他形式。
例如,这是ASP.NET MVC中对此内置支持的工作原理。
答案 1 :(得分:1)
令牌方法可能是最有效的方法。话虽如此,即使您有其他安全措施,也不应该假设数据来自您自己的表单。验证数据始终很重要。