我们有一个网页,通过 iFrame 提供给合作伙伴公司。 iFrame 包含几个 javascript 文件,它们向我们的服务器发出 ajax 请求以获取数据。 iFrame 本身需要一个针对合作伙伴域的 API key 。如果 iFrame 安装在未注册的域上,这将阻止它显示。但是,从注册站点复制 iFrame 的内容和 javascript 文件并将它们托管在未注册站点上将非常容易。
理想情况下,我们希望使用 API key 来限制 Ajax 请求并防止我们的服务器为未注册站点提供请求的数据。但是,似乎没有为 Ajax 请求设置 HTTP_REFERER 服务器变量。我们如何知道请求来自哪个站点?是否可以?如果不是,我们如何防止未经授权的访问?
最佳答案
依赖 HTTP_REFERER 不是可行的方法。您希望您客户的网站使用 API 通过安全链接联系您的网站,并获得一个临时 session 字符串,然后将其用作 IFRAME 源 URL 的一部分,这就是谷歌的做法(而不是 referer. )
使 IFRAME 的 url 在有限的时间内有效,之后您会显示一条关于返回客户页面重新开始的好消息。
关于php - 如何通过 AJAX 请求验证用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/481602/