asp.net-web-api - 如何确定 HTTP 请求是来自浏览器还是某个代理
问题描述
我想知道区分来自浏览器或某些代理(例如邮递员,还有脚本工具)的请求的最佳实践是什么。这不是为了安全措施,只是根据用例应该应用不同的逻辑。
我正在使用以下方法:
HttpBrowserCapabilities browserCapabilities = context.Request.Browser;
if (browserCapabilities.Browser == "Unknown" && browserCapabilities.Id == "default")
这对我有用。
但是,我想听听您对这种方法的反馈,以及您是否认为这种方法可能会出错。我没有在网络上找到任何关于这种方法的参考,所以我想知道我错过了什么。它可靠还是不可靠?
请指教。
解决方案
用户代理是正常的机制。看context.Request.Headers.UserAgent
。是的,一些脚本工具会撒谎并伪装成浏览器。但如果这真的与安全无关,那是他们的事。
推荐阅读
- flutter - 如何让应用在各种屏幕上正确显示?
- java - Maven 通过指定 contextPath 的命令行运行 Jetty Plugin
- python - 无法使用 create_tweet() 发布推文
- elasticsearch - 得到响应代码“400”在 logstash 中的 URL 联系 Elasticsearch
- python - 将日期转换为具有相同值的十六进制
- python - 如何使用 for 循环重复函数
- python - 只有 size-1 的数组可以转换为 Python 标量 Scikit Learn
- c# - 由于 XmlSerialization (sgen.exe) 无法在 Visual Studio 2022 中构建项目并且无法禁用
- snowflake-cloud-data-platform - 将雪花数据卸载到不带扩展名/文件格式的 s3
- partitioning - 当在事件中心 Azure 的同一分区中重试新事件时,会发生什么情况?