java - 防止蜘蛛收集 Tomcat session

标签 java session tomcat servlets

我有一个相当新的网站(大约 3 周前)在 Tomcat 上运行,到目前为止访问者数量很少。

上周我注意到有 1,000 多个 Activity session ,并且检查 Tomcat 的 localhost_access* 日志显示 绝大多数来自此范围内的 IP:119.63.196.* 看起来都属于百度日本。

这是他们点击首页的日志中的一个小例子。 119.63.196.107 - - [24/Aug/2011:07:02:46 +0000] "GET/;jsessionid=94085F76780ACFD96C8109A29446288D HTTP/1.1"200 10311 119.63.196.44 - - [24/Aug/2011:07:03:21 +0000] "GET/;jsessionid=943133C77BB1756CF11592115BA81725 HTTP/1.1"200 10333 119.63.196.39 - - [24/Aug/2011:07:03:56 +0000] "GET/;jsessionid=9B4384BDECF540C8628467F7AB4AB463 HTTP/1.1"200 10311 119.63.196.19 - - [24/Aug/2011:07:04:31 +0000] "GET/;jsessionid=A0B555C3A18377D993B97D4491DD1012 HTTP/1.1"200 10311 119.63.196.45 - - [24/Aug/2011:07:05:10 +0000] "GET/;jsessionid=A3782FA61558BF11C4D5AC4F3DD1EC86 HTTP/1.1"200 10311 119.63.196.23 - - [24/Aug/2011:07:05:53 +0000] "GET/;jsessionid=A3AF84EF13F21492EB47FAB001A1C2E5 HTTP/1.1"200 10311 119.63.196.120 - - [24/Aug/2011:07:06:31 +0000] "GET/;jsessionid=A7C490CEC2C7F2969772AC4050C6D761 HTTP/1.1"200 10311 119.63.196.108 - - [24/Aug/2011:07:07:07 +0000] "GET/;jsessionid=A7F769D354CB37E99843292D650D6367 HTTP/1.1"200 10311

没有一个单独的 IP 破坏该站点,但来自该 IP 范围的集体请求正在增加活跃 session 。而且他们似乎以某种协调的方式来做这件事,因为一次一页将成为目标,并在 20 分钟的时间内在 119.63.196.* IP 范围内收到约 30 次点击,约 30 次不同。然后它会转到另一个页面……这几乎一整天都在进行,并且会累积 Tomcat session 。

我确实将非 Activity session 超时设置得相当高(720 分钟),也许我需要将这个数字降低很多。也许百度日本经常检查是因为它认为页面因链接的变化而发生变化(即 jsessionid 总是不同的)?

感谢阅读。我欢迎任何/所有建议!

埃里克

最佳答案

如果配置 CrawlerSessionManagerValve,Tomcat 7 可以防止创建数千个 session 。有一个短documentation .

此外,您可能需要考虑阻止 Tomcat 将 session ID 放入 URL,因为它随后会显示在搜索引擎中。再次从 Tomcat 7 开始,您可以这样配置:

<session-config>
   <tracking-mode>COOKIE</tracking-mode>
</session-config>

关于java - 防止蜘蛛收集 Tomcat session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7222301/

相关文章:

tomcat - Ubuntu 和 Tomcat 中的 SSL 错误

纯 http tomcat 的 Apache ssl 前端提供不安全的内容

java - 如何仅删除选定项目中 netbeans 中的所有断点

java - Android:VIewFlipper 和 onBackPressed 没有响应

java - 如何将具有相同键但不同值的多个 map 合并为一个 map

php - 像 C++ 中的 PHP 那样的 session ?

java - JSESSIONID 根据要求在 chrome 中更改

java - 列出 clojure 中可用的 java 包和类

java - 我可以在 Java Session 中存储多少数据?

java - 通过 Servlet 进行身份验证