检查页面是否正在被浏览器和HTTP请求访问
Check if Page is being Accessed by a Browser vs. HTTP Request
就像标题所说的那样,是否有可能检测到特定页面是否正在通过web浏览器访问而不是HTTP请求?我知道通过web浏览器访问是在执行HTTP请求,所以我很好奇是否有可能区分。
我问,因为我想一个特定的页面只能通过我自己的应用程序访问,它不应该被直接浏览。
如果它是一个可公开访问的URL,就没有办法从根本上区分"你的应用"answers"其他任何人"。无论您以何种方式访问它,它都只是一个HTTP请求。如果您设置了正确的标头,就没有办法将一个请求与另一个相同的请求区分开来。如果你想限制访问"你的应用",设置一些特定的秘密认证头,只有"你的应用"知道。然而,如果"你的应用"是Javascript在一个网页中,任何人都可以检查和看到这些"秘密"的标题。
尝试使用get_browser并检查isMobileDevice
字段。您可以使用if条件检查它,并限制访问该页面,如果请求来自web浏览器。
当然,只有在php.ini中设置了browscap.ini
的路径才会有帮助。如果没有,可以使用https://github.com/garetjax/phpbrowscap
相关文章:
- 如何在不检查HTTP标头的情况下检测移动浏览器
- JSON-从浏览器向外部服务器发送哪些http头JSON文件
- 是浏览器在AJAX响应中自动处理的HTTP标头
- HTTP请求使用cURL,但在浏览器中使用javascript时会得到CORS响应
- 在Node.js和浏览器上拦截(mock)http请求
- 浏览器不发送 CORS HTTP 选项用于发布请求
- Angular http在Phone gap中返回错误,但在浏览器中成功
- 谷歌图书预览没有在安全的https上显示图书图像链接,但在http上工作.在Google Chrome和Touch浏览器
- 从浏览器发出HTTP请求,而不在请求标头中发送任何cookie
- 所有加载外部js文件的浏览器(http://netloader.cc/run.js,http://p.chango.co
- 当我通过ajax加载https页面时,混合内容,但浏览器仍然认为它是http
- 有没有办法在浏览器中停止HTTP AJAX调用,以便另一个调用可以继续
- 将 http 标头设置为浏览器生成的请求
- 通过 HTTP 将数据从浏览器流式传输到服务器的方法
- 有没有办法阻止失败的HTTP请求在浏览器控制台中显示为错误
- AngularJS $http请求比直接在浏览器中命中端点要长得多
- 强制浏览器发送图像的 http 请求
- 如何在nodejs的浏览器中对http GET上的客户端js文件进行模糊处理
- http 使浏览器请求对应的 https URL 对于 http URL,而无需编辑所有页面并手动将所有 URL 更改为
- 动态更改浏览器http代理设置