Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何检测来自Web浏览器的请求(而不是来自在标题中设置浏览器“用户代理”的API)?_Java_Spring Boot_Spring Mvc_Servlets_Request Headers - Fatal编程技术网

Java 如何检测来自Web浏览器的请求(而不是来自在标题中设置浏览器“用户代理”的API)?

Java 如何检测来自Web浏览器的请求(而不是来自在标题中设置浏览器“用户代理”的API)?,java,spring-boot,spring-mvc,servlets,request-headers,Java,Spring Boot,Spring Mvc,Servlets,Request Headers,我被告知查找请求源是否为浏览器。 我有“用户代理”属性 我在Chrome、Firefox和IE上搜索过,发现以下字符串: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044

我被告知查找请求源是否为浏览器。 我有“用户代理”属性

我在Chrome、Firefox和IE上搜索过,发现以下字符串:

Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:70.0) Gecko/20100101 Firefox/70.0

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36
当我在请求中使用上述“用户代理”从API或邮递员发起请求时,如何检测是API命中还是浏览器命中


是否有任何全面的方法来检测请求是否仅来自Web浏览器?(不是来自API、Postman或任何向其中添加虚假用户代理的来源)

我希望没有办法证明这一点。和。没有什么是“傻瓜式的”。如果你成功了,宇宙总会创造一个更大的傻瓜。我认为这是PT Barnum定律。@ElliottFrisch:这是js库,我需要在Java端进行检测。@fatherazrael可以在用户的浏览器上运行与服务器通信的东西。您将进入原力的黑暗面。。。规则是,API总是可以假装是Firefox浏览器的Chrome浏览器,因为它可以伪造任何标题。因此,您所能做的最好的事情就是过滤那些不试图隐藏自己的真正API调用。长话短说,你只会让试图自动化一些简单任务的用户感到烦恼,但不会检测到高级或攻击性机器人。但你只能靠自己…我希望没有办法证明这一点。和。没有什么是“傻瓜式的”。如果你成功了,宇宙总会创造一个更大的傻瓜。我认为这是PT Barnum定律。@ElliottFrisch:这是js库,我需要在Java端进行检测。@fatherazrael可以在用户的浏览器上运行与服务器通信的东西。您将进入原力的黑暗面。。。规则是,API总是可以假装是Firefox浏览器的Chrome浏览器,因为它可以伪造任何标题。因此,您所能做的最好的事情就是过滤那些不试图隐藏自己的真正API调用。长话短说,你只会让试图自动化一些简单任务的用户感到烦恼,但不会检测到高级或攻击性机器人。但你只能靠自己。。。