Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> организация закрытия доступа, как правильно закрыть доступ посторонним 
V
    Опции темы
almostlost
Дата 16.12.2007, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



День добрый, уважаемые разработчики.

Есть вебсервис. Есть для него администрирование. Чтобы попасть в зону администрирование необходимо ввести пароль. Для всех кто не ввел пароль при попытке открыть любую страницу относящуюся к администрированию должно выдаваться Forbidden. У меня вопрос, как это ПРАВИЛЬНО организовать? Саму безопасность...Ведь нужно гдето хранить какойто флаг о том что этот пользователь имеет доступ ко всем страницам аминистрирования... не в EJB? 
Просто хочется обезопасить такой проект... Очень жду рекомендаций.. 
Спасибо большое. 
PM MAIL   Вверх
kkorsakoff
Дата 16.12.2007, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



Обычно хранят в сессии (HttpSession) или флаг или какой-нибудь идентификатор залогигенного пользователя (id, username,...)
PM MAIL WWW ICQ   Вверх
hamsterKSU
Дата 17.12.2007, 02:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 3
Всего: 11



по моему практически во всех application server-ах есть втсроеный механизм security такой, как JAAS например. настраивешь его и радуешься жизни. application server большую часть работы по защите возьмет на себя и веб сервисы он может защищать.

в веб сервисе просто ставищь анотацию SecurityDomain, помоему но не уверен, ее можно поставить на весь вед сервис или на отдельные методы.

если тебе надо зашитить веб приложение то security описываешь в web.xml
PM MAIL ICQ   Вверх
almostlost
Дата 17.12.2007, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



Спасибо за ответы. Все понятно. 

И еще вопросы:

-  Если на сайте есть опрос, то как Правильно организовать проверку, отвечал ли пользователь, на опрос или нет, тоже через  HttpSession? И идентификацию пользователя при этом(голосовал или нет) проводить через айпи адресс?

- И как узнать айпи адресс юзера, внешний и внутренний, и как по этому адрессу, узнать его приблизительное место нахождения? 
PM MAIL   Вверх
kkorsakoff
Дата 17.12.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 378
Регистрация: 18.10.2005
Где: Санкт-Петербург

Репутация: 6
Всего: 14



Голосовалку так лучше не делать, т.к. HttpSession пропадет через некоторое время жизни сессии (по умолчанию 30 минут).
Для этого используют куки. Ставят куку, где указано, например, в каких голосованиях юзер уже принял участие.
Чем хорошо: кука хранится на компьютере конкретного пользователя, причем практически неограниченное время.
Минусы: куки можно стереть.

Так же можно сделать проверку по IP.
Плюсы: Ip-адрес не сотрешь.
Минусы: это не очень практично, т.к. большие организации часто сидят под одним айпи

Внешний адрес узнать просто: request.getRemoteAddr()
Узнать внутренний адрес...ммм...без установки чего-нибудь на компьютер пользователя (приложение, апплет, active-x) я даже и не знаю как.

Местонахождение узнать можно достаточно точно по базе GeoIP

http://www.maxmind.com/app/country
http://www.maxmind.com/app/city

Там есть бесплатная база с немного меньшей точностью (многих вполне устраиваетsmile), так же есть Java API.

PM MAIL WWW ICQ   Вверх
hamsterKSU
Дата 18.12.2007, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 401
Регистрация: 20.10.2006
Где: Украина, Херсон

Репутация: 3
Всего: 11



Цитата(kkorsakoff @  17.12.2007,  15:51 Найти цитируемый пост)
Для этого используют куки. Ставят куку, где указано, например, в каких голосованиях юзер уже принял участие.Чем хорошо: кука хранится на компьютере конкретного пользователя, причем практически неограниченное время.Минусы: куки можно стереть.


а если юзер залогинился с другой машины? или с другого браузера у себя на машине? - пиши пропало

сделай на сервере у юзера список опросов за которые он проголосовал и все. - в случае если надо провести  "перегалосовку" - просто сбрасываешь флаги у юзера или удаляешь запись
PM MAIL ICQ   Вверх
almostlost
Дата 18.12.2007, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 38
Регистрация: 3.5.2007

Репутация: нет
Всего: нет



спасиба большое за рекомендации и ссылки...

Цитата

а если юзер залогинился с другой машины? или с другого браузера у себя на машине? - пиши пропало

сделай на сервере у юзера список опросов за которые он проголосовал и все

Но ведь чтобы участвовать в опросе не обязательно быть зерегистрированным юзером, может на этом сайте вообще не будет регистрации\авторизации. Как тогда узнать, что именно этот юзер голосовал? Видимо, то о чем ты говоришь, это еще один недостаток куков...

Это сообщение отредактировал(а) almostlost - 18.12.2007, 11:37
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0525 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.