1

我正在使用php desktop开发一个 php/html/js 桌面应用程序,当你运行你的应用程序时,php desktop 运行服务器并在指定或随机端口上监听,例如127.0.0.1:65543,如果用户在他/她的外部浏览器中打开该 url 他/她可以在浏览器中访问应用程序,我需要一些技巧或提示,以便我的应用程序仅从 php 桌面二进制文件中的嵌入式浏览器加载

我可以检查用户代理,但它不安全,因为 php 桌面用户代理是

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57野生动物园/537.36

你知道任何技巧或者你有任何使用php桌面的经验吗,我真的很感激任何帮助

4

3 回答 3

1

使用用户代理当然不是最好的解决方案,因为人们可以拥有他们想要的每个用户代理。但是,如果您没有安全问题,我会尝试在您的“php 桌面”环境中设置自定义用户代理,例如“MyCustomCallUserAgent”,并通过 PHP 检查代理字符串是否匹配。

在阅读“php 桌面”环境的网站时,它似乎只不过是调用本地 php 服务器的 Chrome/IE 画布。因此,在这种情况下,从 Chrome 中调用脚本本身或从 chrome 画布调用脚本没有区别,因此您无法发现差异。唯一的机会是读取全局 $_SERVER 变量并检查是否有任何“唯一”可以识别调用客户端。但这不会比使用用户代理字符串更安全。

您想尝试TideSDK作为替代方案。

于 2014-07-15T21:00:10.223 回答
1

该用户代理字符串非常具体,因此您可以安全地对其进行检查。用户通常会在他们的系统上安装最新的 Google Chrome。

您也可以通过 command_line_switches 选项设置“user-agent”开关,用您自己的字符串覆盖该用户代理字符串:https ://code.google.com/p/phpdesktop/wiki/ChromeSettings

您还可以通过 javascript 检查“phpdesktop”对象。此对象仅在 phpdesktop 嵌入式浏览器中可用,请参阅:https ://code.google.com/p/phpdesktop/wiki/JavascriptApi

于 2015-01-20T08:37:29.280 回答
0

如果您真的不希望用户在可执行文件之外浏览 phpdesktop 应用程序,我建议您使用 javaFx WebView。

使用您当前的 php,您只需将其添加到 javafx WebView。这样做可以解决两个问题:

  1. 用户无法在可执行文件之外浏览您的应用程序。

  2. 用户无法轻易看到您的代码。

我希望这有帮助

于 2019-07-04T13:26:17.580 回答