Лучший способ защитить URL, чтобы только определенная сторона могла взаимодействовать друг с другом - PullRequest
1 голос
/ 22 января 2010

Мне нужно обновить приложение jsp / struts.

В настоящее время у нас есть только 1 веб-система (филиал), и теперь мне нужно обновить и построить другую веб-систему, которая представляет HQ. Штаб и филиалы разных доменов. HQ может видеть 4 ветви на странице HQ. Нам нужно войти, чтобы получить доступ к штаб-квартире и филиалам. Если HQ хочет увидеть подробности в филиале A, мы можем нажать на ссылку, такую ​​как

Total attack : <a href="https://www.branch_A.com/xxx/sss/?sss=333">105</a>

Мой вопрос: как защитить URL-адрес, чтобы обеспечить безопасную связь только с HQ и сервером branch_A.com? Если мы используем этот URL-адрес с другого IP-адреса, на нем должно отображаться несанкционированное сообщение.

Я сделал, чтобы контролировать IP, используя request.getRemoteAddr() в ветке, но он недостаточно защищен.

Может кто-нибудь помочь мне дать идеи о том, как защитить этот URL?

Ответы [ 3 ]

2 голосов
/ 22 января 2010

Нам нужно авторизоваться

Итак, у вас уже есть система входа в систему. Поскольку вы уже задаете этот вопрос, это звучит как домашняя система входа в систему, в противном случае вы могли бы просто настроить управляемую контейнером аутентификацию для проверки определенных шаблонов URL для любых зарегистрированных пользователей / ролей.

Вам просто нужно проверять вошедшего в систему пользователя всякий раз, когда запрашиваются конкретные шаблоны URL. Фильтр идеально подходит для этого. Предположим, что ваша домашняя система входа в систему помещает вошедшего в систему пользователя в область действия сеанса, а затем Фильтру просто нужно проверить его наличие:

if (((HttpServletRequest) request).getSession().getAttribute("user") != null) {
    chain.doFilter(request, response); // User is present. Just continue request.
} else {
    ((HttpServletResponse) response).sendError(HttpServletResponse.SC_UNAUTHORIZED); // Error 401.
}

Сопоставьте этот фильтр с web.xml на url-pattern, соответствующем запросам, которые вы хотите отфильтровать вошедшему в систему пользователю. Вы даже можете пойти дальше, добавив роль пользователя, и если вошедший в систему пользователь имеет право на просмотр URL-адреса.

1 голос
/ 22 января 2010

использовать .htaccess для ограничения входящего IP? или настройте в httpd.conf / virtual host. даже брандмауэр?

что-то вроде:

order allow,deny    
deny from 123.45.6.7
deny from 012.34.5.
allow from all
0 голосов
/ 22 января 2010

Я бы посмотрел на использование клиентских (и серверных) SSL-сертификатов. Для этого есть инструкции под Apache и IIS (или используйте поисковую систему для любых настроек)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...