【问题标题】:Only allow access to PHP file through application [duplicate]只允许通过应用程序访问 PHP 文件 [重复]
【发布时间】:2013-03-01 12:00:35
【问题描述】:

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

谢谢

【问题讨论】:

  • 为什么不在 php 文件的开头添加检查呢? code.google.com/p/php-mobile-detect
  • 或许可以使用 user-agent 属性,但很容易被欺骗
  • @X.L.Ant — 不。问题是关于限制特定客户端,而不是其他本地 PHP 脚本。
  • 糟糕,我的错。没有取消关闭选项? ://
  • 我不明白如何检查?由于 Android 应用程序可以被剥离到它们的代码,这将使任何类型的密码检查无效。另外,我不明白如果我限制对文件的访问,就像在“可能的重复”中那样,它将能够在应用程序中访问它。

标签: php ios .htaccess


【解决方案1】:

您对其施加的几乎所有限制基本上都归结为“在请求中放入只有应用程序才会发送的内容”。

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

通过 HTTPS 而不是 HTTP 发出请求将保护机密免遭嗅探。

不过,没有什么可以使您免于反编译。

【讨论】:

  • 任何人都可以监听app网络请求并获取链接,即使使用https协议也可以使用“中间人”技术获取发送参数。
【解决方案2】:

您可以在应用内的客户端请求中添加自定义 http 标头,并带有质询代码。您的脚本检测标头并验证质询。如果验证通过,则执行脚本,否则返回 403 Forbidden。

【讨论】:

    【解决方案3】:

    而不是。事实上,每个人都可以在自己的浏览器信息中插入虚假数据,你不会发现这是 Windows 95 上的 Microsoft Internet Explorer 还是 Android 手机上的 Chrome。

    您可以尝试通过 IP 号码来阻止,但这不是阻止应用程序,而是用户。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-10
      相关资源
      最近更新 更多