3

PHP是否可以获取请求的证书,特别是证书上的网站名称和CA?

我想检查是否只能通过 AJAX 调用从我的网站调用我的 PHP 文件。像这样:

  1. 用户登录我的网站,然后使用 https 进行后续交互
  2. 用户加载页面https:// domain/mypage.php
  3. https:// domain/mypage.php有一个 AJAX 调用https:// domain/getinfo.php

在 getinfo.php 中,我想检查请求的证书详细信息,以确保请求是从我的网站发出的,即不是直接点击 URL 或使用抓取工具。

可能的?

4

2 回答 2

0

我试图确保对我的 getinfo.php 的调用来自我的网站,而不是来自试图通过点击 URL 来窃取我的(非常昂贵的)数据的人。

您的意思是要确保对您的呼叫getinfo.php来自访问您网站的客户?这是一个重要的区别。“您的站点”不是发起请求,而是访问该站点的客户端。并且无论客户端在发送请求时是否仍然打开您的站点是不可能检测到的,每个请求看起来都与其他请求完全一样。

可以要求客户在打开您的网站时必须收到的请求中发送一个令牌。通常这是一个 cookie 和/或会话 ID。如果没有有效的 cookie/会话,您将无法回答客户。

这仍然完全有可能在不实际打开页面的情况下抓取数据,只需发出一个请求来获取 cookie,另一个请求来获取数据。

出于所有意图和目的,如果 API/站点是公开的,那么数据也是公开的。如果您真的想保护它,则必须要求用户身份验证并小心将这些帐户提供给谁。这还可以进行审核并可能禁止似乎在抓取您的数据的用户。

于 2012-07-18T16:43:37.380 回答
0

另一种方法是一次性 GET/POST 令牌,例如您保存令牌和有效期,然后给脚本令牌,脚本使用https://example.com/getinfo.php?t调用站点=token例如,您向客户端提供您的数据并删除令牌,因此没有人可以使用已经使用的令牌。

同样在任何情况下,您似乎都对 SSL 进行了调用,这很好并且更好地保留它,因为通过 HTTP 令牌无论是获取还是发布都是完全可见的,因此如果攻击者关闭连接然后尝试获取它的 URL坏的。

任何类型的恶意软件也可以这样做,因为在传输数据(令牌甚至您的“信息”)之后,很可能在 RAM 中未加密,因此可以在没有任何人注意的情况下将其拾取。

于 2015-11-06T10:56:28.830 回答