检测从Android应用程序调用的URL

时间:2012-01-25 15:20:01

标签: php javascript android ios browser

我开发了一个向服务器发送php请求的应用程序(ios和android)。出于安全原因,我需要确保用户无法在浏览器中键入相同的URL。只允许应用程序执行此请求。我一直在考虑进行javascript浏览器检测,我从ios得到了一个很好的结果,当它从应用程序调用时它回答“未知”。但对于Android,它总是回答“Android”,无论是在浏览器中还是在应用程序调用时。 有人知道如何在服务器端检测到这个吗?

1 个答案:

答案 0 :(得分:1)

您可以检测用户代理字符串。这可以在PHP的服务器端使用:

完成
$_SERVER['HTTP_USER_AGENT']

Android和iOS将返回包含“Mobile Safari”,“webkit”等内容的用户代理字符串。在您的应用中,告诉webview将用户代理设置为您已编写的专有内容。您可以使用以下代码在iOS上执行此操作 - 我希望Android具有类似的功能:

[request setValue:@"MyMadeUpUserAgentString" forHTTPHeaderField:@"User_Agent"];

然后在PHP中,只显示HTTP_USER_AGENT与您在应用中设置的值相匹配的页面。

当然它并不是非常安全 - 某些浏览器或浏览器插件会让你伪造你的用户代理。但它会阻止绝大多数用户在浏览器中看到内容。