POST到网站上的页面,只接受数据是否来自同一个网址?

时间:2017-03-28 00:37:19

标签: php jquery ajax rest api

我正在处理一个简单的联系表单,它只会发布到call start端点,如果成功或失败,则通过ajax更新消息。我打算让其他形式如帐户设置以这种方式工作,这样我就可以避免刷新页面。我是一个刚开始使用ajax并创建自己的api的人,所以任何帮助都会很棒。

基本上我现在要做的就是验证邮件请求/正文是从我的网站发送的,而不是外部来源。我想过用PHP检查网址,但我不确定这是否会被欺骗。任何帮助都会很棒,谢谢!

2 个答案:

答案 0 :(得分:1)

一种方法是在创建表单时创建唯一的ID / GUID,将其嵌入表单(隐藏字段,JS var),并将其存储到$ _SESSION。当您的脚本通过AJAX调用时,在AJAX调用中传递此值,然后在服务器端进行比较。这样,您不仅知道它来自您的页面,而且来自同一会话。

答案 1 :(得分:0)

要检查这个安全性,我会传递在客户端上生成的哈希(使用某些规则)并检查哈希在服务器php端点上是否有效。您可以使用$ _SERVER [" HTTP_REFERER"]来检查域是否匹配但是很容易被欺骗,有时甚至可能无法使用。我希望我回答了这个问题。这就是我理解你的要求。