2013-03-13 162 views
2

我有一个PHP文件查询我的数据库,然后返回XML格式的信息回到我的应用程序。现在,如果我只是转到浏览器中的URL并在URL中输入正确的参数,那么信息就会显示给我。有没有办法让PHP页面只能通过应用程序(iOS和Android)访问?我已经搜索过了,唯一能找到的地方是只能通过包含来访问页面,但是我不明白这会如何限制访问,如果有人想出包含该文件的php页面。任何建议表示赞赏!只允许通过应用程序访问PHP文件

感谢

+0

为什么你不只是在php文件的开头添加检查? http://code.google.com/p/php-mobile-detect/ – Peon 2013-03-13 13:51:25

+0

可能能够使用用户代理属性,但很容易被欺骗 – 2013-03-13 13:52:27

+1

@XLAnt - 否。问题是关于限制特定客户端,而不是其他的本地PHP脚本。 – Quentin 2013-03-13 13:53:35

回答

0

几乎所有对它的限制基本上都归结为“将请求中的内容放在只有应用程序将发送的请求中”。

基本的方法是“保持URL的秘密”。如果只有应用程序知道它,那么只有应用程序可以向它发出请求。其他任何东西(密码,API密钥,自定义HTTP标头,用户代理嗅探等)都只是围绕相同概念的复杂性。

通过HTTPS而不是HTTP进行请求将保护秘密免受嗅探的影响。

虽然没有什么能够让你免去反编译。

+0

任何人都可以收听应用程序网络请求并获取链接,即使使用https协议,他们也可以使用“Man in the middle”技术获取发送的参数。 – Husam 2017-04-21 17:12:14

0

您可以在您的客户端请求您的应用程序中添加自定义HTTP标头与挑战码。您的脚本检测到标题并验证挑战。如果验证通过,则执行脚本,否则返回403 Forbidden。

0

而不是。实际上,每个人都可以在他的浏览器信息中插入错误的数据,并且您不会发现这是Windows 95上的Microsoft Internet Explorer还是Android手机上的Chrome。

您可能会试图阻止按IP号码,但这不是阻止应用程序,而是阻止用户。

我唯一的想法是使用一些用户名/密码登录的东西,只有你的应用程序才会知道,但它有自己的安全漏洞(如中间人(man-in-the-the-middle))。

相关问题