有一个Java应用程序请求页面,我希望阻止它。
我认为这样做的一种方法是使用会话或cookie,但我不确定Java URL方法是否可以处理它们。
除了使用会话或cookie之外,还有其他方法可以区分来自此Java应用程序的请求并阻止它吗?我知道它有一个独特的Java用户代理标题,但我希望更准确。
答案 0 :(得分:2)
网址只是您尝试与之交谈的服务器的表示。它有一些方便的方法来打开连接等等,但就是这样。
会话通过以下两种方式之一处理:cookie或URL重写。这些与URL类很少或没有关系(除了会话ID放在后者的URL中)。
用户代理似乎是您最好的选择,除了启用一些密码(http基本,摘要等...)或ssl证书验证。话虽如此,用户代理完全由客户自行决定,客户可以轻易更改用户代理以模仿其他浏览器。
答案 1 :(得分:2)
标题问题的答案是URL.openXxx
方法不了解cookie。
(如果您的服务器配置为接受请求URL本身的会话令牌,URL.openXxx
方法将不会妨碍。但是,这种方法是不安全的。)
然后我们来到你的问题的主体。
...除了使用会话或cookie之外还有另外一种方法可以区分来自这个java应用程序的请求并阻止它吗?
此时,我假设您正在谈论在服务器端阻止请求。我应该指出,“坏人”客户端用来发送请求的是 immaterial 。 (它可以使用URL
或Apache HTTPComponents,也可以在汇编代码中实现HTTP协议栈!)
所以真正的问题是你有什么选择来阻止不需要的请求。答案是:
总之,cookie是最好的解决方案,因此“好人”客户端应用程序需要使用能够进行cookie管理并在请求中设置cookie的库。