【问题标题】:Check if Page is being Accessed by a Browser vs. HTTP Request检查浏览器与 HTTP 请求是否正在访问页面
【发布时间】:2014-03-23 23:26:06
【问题描述】:

正如标题所说,是否可以检测特定页面是否正在通过 Web 浏览器而不是 HTTP 请求进行访问?我知道通过网络浏览器访问是在执行 HTTP 请求,所以我很好奇它是否有可能区分。

我问是因为我希望某个页面只能通过我自己的应用程序访问,并且不应该直接浏览。

【问题讨论】:

  • 然后添加从您的应用程序发送的标头和/或使用身份验证?

标签: javascript php http


【解决方案1】:

如果它是可公开访问的 URL,则无法从根本上区分“您的应用”和“其他任何人”。它只是一个 HTTP 请求,无论您以何种方式访问​​它。如果您设置了正确的标头,则无法区分一个请求与另一个相同的请求。如果您只想限制对“您的应用程序”的访问,请设置一些只有“您的应用程序”知道的特定秘密身份验证标头。但是,如果“您的应用”是网页中的 Javascript,那么任何人都可以检查并看到那些“秘密”标头。

【讨论】:

    【解决方案2】:

    尝试使用get_browser 并检查isMobileDevice 字段。 如果请求来自网络浏览器,您可以使用 if 条件检查它并限制该页面的访问。

    当然,只有在 php.ini 中设置了 browscap.ini 的路径时,它才会有所帮助。如果没有,你可以使用像https://github.com/garetjax/phpbrowscap这样的php类

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-13
      • 2012-03-14
      • 2017-09-13
      • 2012-06-22
      • 2020-05-07
      相关资源
      最近更新 更多