2014-07-15 31 views
1

我正在開發一個使用php desktop的php/html/js桌面應用程序,當您運行您的應用程序時,如果用戶在他/她的外部瀏覽器中打開該URL,運行服務器並監聽指定或隨機的端口,如127.0.0.1:65543他/她可以在瀏覽器中訪問應用程序,我需要一些訣竅或技巧,所以我的應用程序加載剛剛從PHP桌面二進制文件內嵌入瀏覽器阻止用戶瀏覽phpdesktop應用以外的可執行文件?

我可以檢查用戶代理,但它不是安全的原因PHP的桌面用戶代理是

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari瀏覽器/ 537.36

你知道有什麼把戲嗎,或者你有沒有使用php desktop的經驗? ,我真的很感激任何幫助

+0

根據定義,您的應用程序已在其計算機上「運行」,因此,如果他們通過「嵌入式」瀏覽器訪問該應用程序或全面使用,它們有什麼區別「外部」瀏覽器? –

回答

1

該用戶代理字符串非常具體,因此您可以安全地檢查它。用戶通常會在他們的系統上安裝最新的谷歌瀏覽器。

您也可能會覆蓋用戶代理字符串自己通過的command_line_switches選項設置「用戶代理」開關:https://code.google.com/p/phpdesktop/wiki/ChromeSettings

您也可以通過JavaScript檢查了「phpdesktop」對象。此對象將僅在phpdesktop嵌入式瀏覽器中可用,請參閱:https://code.google.com/p/phpdesktop/wiki/JavascriptApi

1

使用用戶代理當然不是最好的解決方案,因爲人們可以擁有他們想要的每個用戶代理。但是,如果沒有安全問題,那麼我嘗試在「MyCustomCallUserAgent」等「php桌面」環境中設置自定義用戶代理,並通過PHP檢查代理字符串是否匹配。

在閱讀「php桌面」環境的網站時,它看起來好像只是一個調用本地php服務器的Chrome/IE畫布。因此,在這種情況下,自行調用Chrome或Chrome瀏覽器的腳本之間沒有任何區別,因此您無法區分差異。唯一的機會就是閱讀全局的$ _SERVER變量,並檢查是否有任何「唯一的」可以識別調用客戶端。但是這不會比使用用戶代理字符串更安全。

你的男人想嘗試TideSDK作爲替代。

相關問題