我正在使用php desktop开发一个php / html / js桌面应用程序,当你运行你的应用程序时,php桌面运行一个服务器并监听指定或随机端口,如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
Safari / 537.36
你知道任何技巧,或者你有任何PHP桌面的经验,我真的很感激任何帮助
答案 0 :(得分:1)
使用用户代理当然不是最佳解决方案,因为人们可以拥有他们想要的每个用户代理。但是,如果没有安全问题,我尝试在您的" php桌面中设置自定义用户代理"环境喜欢" MyCustomCallUserAgent"并通过PHP检查代理字符串是否匹配。
阅读" php桌面的网站"环境似乎只是一个调用本地php服务器的Chrome / IE画布。因此,在这种情况下,从自己调用Chrome脚本或从Chrome画布调用脚本之间没有区别,因此您无法发现差异。只有机会才能阅读全球$ _SERVER变量并检查是否有任何东西" unique"这使得识别呼叫客户端成为可能。但这比使用用户代理字符串更安全。
你想要尝试TideSDK替代。
答案 1 :(得分:1)
该用户代理字符串非常具体,因此您可以安全地检查它。用户通常会在其系统上安装最新的Google Chrome。
您也可以通过设置" user-agent"来覆盖您自己的用户代理字符串。切换到command_line_switches选项:https://code.google.com/p/phpdesktop/wiki/ChromeSettings
您也可以通过javascript查看" phpdesktop"宾语。此对象仅在phpdesktop嵌入式浏览器中可用,请参阅:https://code.google.com/p/phpdesktop/wiki/JavascriptApi
答案 2 :(得分:0)
如果您真的不希望用户从可执行文件之外浏览phpdesktop应用程序,我建议您使用javaFx WebView。
使用当前的php,只需将其添加到javafx WebView中。这样做可以解决两个问题:
用户无法在可执行文件之外浏览您的应用。
用户无法轻松查看您的代码。
我希望这对您有帮助