Я не думаю, что это редко.Одним из возможных решений может быть установка минимального времени ожидания сеанса.Например 5 минут.Кроме того, вы можете написать фильтр для увеличения времени ожидания сеанса, если сеанс уже существует для пользователя.Таким образом, у обычного пользователя время сеанса составляет 30 минут, а у пользователей, посещающих только одну сторону, время ожидания составляет 5 минут.
Вот фильтр, который дозирует хитрость:
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
HttpServletRequest httpRequest = (HttpServletRequest)request;
// The false is important, otherwise a new session will be created.
HttpSession session = httpRequest.getSession(false);
if (session == null) {
chain.doFilter(request, response);
return;
}
session.setMaxInactiveInterval(30 * 60);
chain.doFilter(request, response);
}
Еще один хорошийСовет должен фильтровать сканеры, как бот Google."Bot Detection" - это хорошее ключевое слово для поиска.