php - 如何通过 AJAX 请求验证用户?

标签 php ajax authentication

我们有一个网页,通过 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/

相关文章:

php - codeigniter - 邮件类 - 提交后注册

php - php中2天和48小时有什么区别

Ajax 跨域错误

javascript - 使用 fopen() 将文件内容从 PHP 回显到 javascript,file_exists() 不起作用

ruby-on-rails-3 - 如何从另一个不同于设计的 Controller 调用设计的sign_in和sign_out方法?

php - 使用 PHP if 语句添加 CSS?

php - 使用模型时如何在 PHP Active Record 中创建事务?

javascript - 在 ASP.NET MVC 中使用 ajax javascript 调用 View

java - 在 Android 应用发送的 HTTP 请求之间维护 cookie

javascript - 使用过期的 jwt 处理自动登录