0

我有一个问题要问你们。我目前正在创建某种许可系统,用 PHP 编写。当然,这必须是一个安全的系统,并且应该以多种不同的方式检查许可证。当我需要检查到期日期时遇到了问题。

基本上,我想获取时区的当前时间(GMT +1)。但是,我必须确定这个时间是实时的,并且不能由软件所有者更改。如果许可证过期,所有者应该不能更改服务器上的时钟,或者做其他可以使许可证再次有效的事情。

我正在考虑检查我的服务器,比如发送一个 cURL 请求并从那里检查给定的时间——因为它不能被其他人编辑。在这种情况下,所有者可以只是 IP 阻止我的域/IP,并且他的服务器将无法连接以检查当前时间。当然,当我的网站最近 10 次没有响应时,我可以“终止许可证”。但是,如果我受到 DDoSed/攻击,它当然不会影响到一个好的客户?

那么,在 PHP 中有什么方法可以在 GMT +1 中获取当前的“世界时钟”吗?并且服务器的所有者必须以任何方式无法更改时钟。

想法?代码示例?

谢谢!

更新

代码已加密,因此他们无法访问源代码,只能访问加密的源代码。

4

2 回答 2

1

PHP 始终使用可由系统管理员更改的系统时钟。您可以使用 NTP 服务或世界时钟 WebService 来获取当前的世界时间,但因此您必须有互联网连接 - 正如您所说,它可以被操纵。

另一个想法:作为服务器管理员,您可能不会操纵生产服务器上的系统时钟来避免许可证过期,因为正确的服务器时间对于包括网络文件系统和身份验证在内的许多应用程序至关重要。

如果客户端没有/可以操作源代码,您可以定期将系统时间记录到数据库或加密文件中,并根据首次运行计算运行时间并检查显着的时间变化。

于 2013-01-07T15:17:13.693 回答
0

我相信简短的回答是,不可能做你想做的事。

您的客户端可以访问服务器(通过他可以更改服务器时钟并阻止您的主机的语句知道)。

这意味着您的客户可以修改您的源代码或跳过任意环节以丢弃您的许可。

PHP 中的哪一个让您难以篡改您的代码。

您当然可以使用某种混淆工具,并以这种方式处理它。

不过,我的建议是信任您的客户,让他们拥有您的源代码,因为您将以任何方式将其提供给他们,然后不要在没有许可证的情况下向用户推送更新或修复。

如果您需要更多货币化,请务必记下您的支持时间等。

花时间编写功能,而不是 DRM,获得更好的产品,您的客户会很乐意付钱给您!

我希望这对你有用。

于 2013-01-07T15:21:43.420 回答