如何以与大多数域名托管服务商兼容的方式触发私有 Web 服务http_request


How to trigger a private web-service http_request in a way that is compatible with most domain hosts?

我的客户是博客和其他网站的开发人员。这些网站托管在各种不同的网站上,例如 wordpress.org,dreamhost等。

我希望能够给他们一些代码(例如一些javascript和/或php),每当访问他们的一个页面(例如http_get_request)时,都会将消息发送到我的"跟踪器服务器"。该消息必须包含一个秘密的唯一 ID,该 ID 唯一标识/确认该消息的真实性来自对该客户网站的访问。

我目前的策略是给客户一个jQuery片段,放在他们的模板顶部,以(在正确的时间)执行http_request来http_request也位于他们服务器上的notify_tracker_server.php文件。秘密唯一ID将在该php文件中.php,因此客户网站的访问者永远不会看到它。

这是做事的好方法吗?

我担心的是:

  1. 通常,wordpress.org 和其他流行的托管选项是否允许将.php文件添加到其站点?
  2. 通常,它们是否允许从其服务器到其他服务器进行http_requests?

或者更广泛地说,有没有更好的方法可以做到这一点?例如,是否可以不使用PHP(或任何其他服务器端脚本)来做到这一点,但仍保持唯一ID的机密性。

  1. Wordpress.org 允许您编辑页面模板。 您可以在此处包含一个可以在页面加载时调用的 PHP 代码段。

  2. 如果他们让 PHP 打开其他主机或 fget 它们,它将依赖于主机。

你当然可以编写一个PHP片段,输出一个简单的javascript,用你的"秘密"信息击中你的家庭服务器。

由于我怀疑您是否使用它来保护真正需要加密的任何内容,因此只需 base64 对"秘密"字符串进行编码并在 url 中使用它。 你甚至可以在javascript中这样说。

<?php
 $mysecret='site101.com';
 $encoded=base64_encode($mysecret);
  echo'
   <script src="http://www.homeserver.com/scripts/mytracker.php?site='.$encoded.'"></script>
  ';

?>

然后在您的"我的追踪器"上.php

$decoded=base64_decode($_POST['site']);
echo $decoded  ( 'site101.com' )
  • 编辑-您可以完全放弃 PHP 包含并提前生成标签。

    `<script src="http://www.homeserver.com/scripts/mytracker.php?site=c2l0ZTEwMS5jb20="></script>`