Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Система веб-аутентификации
|
|||
|---|---|---|---|
|
#18+
Есть SQL сервер. Там в табличках наряду с данными хранятся тексты запросов для вытаскивания этих самых данных. В настоящее время все это работает через обычное приложение (Delphi). Хочу частично это перевести на Web-платформу (не знаю еще IIS или Apache). В качестве аутентификации не хочу пользоваться стандартным окошком аутентификации IIS (например) - не красивое оно. Будет страница с предложением ввести логин/пароль. Вопрос в том, как правильней было бы организовать работу системы аутентификации. Например, пользователь проавторизировался. Поработал, ушел, забыв нажать LogOut. Надо чтобы система проверяла как давно была проведена авторизация. Как сделать так чтобы страница (например http://192.168.1.1/baza/index.html?action=5&report=20&data=GetReport) была доступна только проавторизировавшимся пользователям. Достаточно ли будет создать таблицу с именем пользователя, его IP адресом, и временем начала сессии. А перед каждым действием этого пользователя проверять сколько прошло времени, и.т.д. Возможно вопрос непонятен. Давайте начнем обсуждать - доберемся до истины!.. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.11.2003, 11:03 |
|
||
|
Система веб-аутентификации
|
|||
|---|---|---|---|
|
#18+
>Достаточно ли будет создать таблицу с именем пользователя, его IP адресом, и временем начала сессии. IP точно недостаточно, многие ходят из-зи фаервола, нужно обязательно использовать имя. Можно идентифицировать по кукам, но по-моему по имени логичнее, но это зависит об требований к интерфейсу. Например позволяется ли одному юзеру заводить много сессий. У нас для авторизации используются id сесии (sessionID), которые присваиваются юзеру в момент успешного логона и живут в куках и в базе. Если хочешь большей безопасности, то sessionID можно менять каждый раз, когода юзер приходит на сайт за новой страницей. Юзеры никогда не нажимают логаут, сессии нужно чистить руками, например раз в N секунд очищать устаревшие сессии из таблцы или где они там у тебя будут храниться. >Как сделать так чтобы страница ... была доступна только проавторизировавшимся пользователям. Если страницы формируются динамически и ты сначала проверяешь права юзера, то доступ к заданной странице получится автоматически, неавторизованные юзеры его иметь не будут по причине отсутствия страницы. Не знаю как это просто сделать в случае статических страниц. Вообще по-моему нужно сразу настраиваться на трехзвенную архитектуру, средний слой должен быть обязательно, вопрос только в том, насколько толстый. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 01:56 |
|
||
|
Система веб-аутентификации
|
|||
|---|---|---|---|
|
#18+
>IP точно недостаточно, нужно обязательно использовать имя. А если с одним и тем же именем будет два коннекта? Может MAC-адрес выцыпить (если это возможно)? >Можно идентифицировать по кукам Куки могут быть отключены у пользователя. >Если страницы формируются динамически и ты сначала проверяешь права юзера, то доступ к заданной странице получится автоматически, Ну, по-идее, страницы формируются динамически. В том примере, который я привел: http://192.168.1.1/baza/index.html?action=5&report=20&data=GetReport Формируется Некое действие №5 с отчетом №20, возвращаемый формат - PDF Вот, но ведь никто не мешает людям просто открыть браузер и в строке "Адрес" ручками написать это строку. Но, в принципе, наверное, если перед возвращением пользователю результата сделать проверку, то, должно быть все ОК? >Вообще по-моему нужно сразу настраиваться на трехзвенную архитектуру, средний слой должен быть обязательно, вопрос только в том, насколько толстый А что это такое? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.11.2003, 06:32 |
|
||
|
Система веб-аутентификации
|
|||
|---|---|---|---|
|
#18+
>Куки могут быть отключены у пользователя. Может я ошибаюсь, но если это требование обязательно то обсуждать больше нечего. Ты не сможешь идентифицировать юзера. С одной машины могут одновременно работать несколько юзеров (теоретически), все во второй приход будут иметь общий мак адрес, IP, как ты их различишь? Ведь имени, под которым они залогинились ты в запросе уже не получишь. Может броузер пишет в запрос какой-нибудь идентификатор, но я об этом ничего не знаю. Чтоб их различить нужно положить в куки что-то уникальное для юзера: userName или sessionID, и потом в следующий приход юзера вытащить это из кук. Я не знаю другого способа. sessionID хорош тем, что можно на одного юзера завести несколько сессий. Если в куки класть userName, то туда надо класть и пароль, что не есть хорошо. Основное отличие WWW приложений от клиент-сервера по-моему состоит в том, что нет постоянных сессий. Пользователь приходит с запросом и ты его должен узнать. >Вот, но ведь никто не мешает людям просто открыть браузер и в строке "Адрес" ручками написать это строку. Но, в принципе, наверное, если перед возвращением пользователю результата сделать проверку, то, должно быть все ОК? Для этого в куки кладется sessionID, присваемый системой при логоне. Если он неправильный страница не формируется. При желании sessionID можно менять случайным образом при каждом приходе юзера. >А что это такое? Это когда между пользователем и БД стоит один или несколько слоев. Один там будет всегда: это веб сервер, на котором будут работать CGI или какие-то еще скрипты. В дополнение может быть application server, туда можно положить всю логику, а в базе только хранить данные, некоторые так и делают, тогда можно обойтись без скриптов на веб сервере. Это называется толстый средний слой. С точки зрения базы это толстый клиент. Еще пример такой архитектуры это bugzilla, можно скачать и посмотреть. Там нет application server, все сделано CGI и перловыми скриптами, но это не важно, важно что база логикой не занимается. Если логикой занимается база, а средний слой только парсит HTTP запросы и тупо формирует страницы по данным из базы, то это тонкий средний слой. В принципе для небольшого сайта можно обойтись без базы, но по-моему это несерьезно. Вообще на этот счет должна быть литература, там тебе на счет всяких архитектур объяснят лучше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.11.2003, 01:59 |
|
||
|
Система веб-аутентификации
|
|||
|---|---|---|---|
|
#18+
тут тебе разделять нужно идентификацию и авторизацию. идентификация - то чо пользоватедь допустимый авторизация - определить ресурсы, к которым пользователь имеет доступ идентификацию лучше делать по логину и паролю. для авторизации у нас, например, завели роли. то есть создаешь например роль Администратор, которой разрешен доступ ко всем ресурсам, роль Расширенный пользователь - там какая то часть ресурсов. для реализации авторизации мы завели таблицу - в ней храним пары id роли, id приложения. так же мы сделали таблицу - id поль-ля, id роли. то есть схема такая 1. определяем что пользователь есть в базе, то есть у него есть id поль-ля 2. по id поль-ля получаем id роли. этих id роли соотвественно может быть несколько 3. по id роли получаем список id приложений, по которым строим ссылки ну и на каждой странице можно проверять в базе, есть ли для приложения id приложения роль id роли, в которой присутсвует нужный пользователь id поль-ля. примерно так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2003, 06:03 |
|
||
|
|

start [/forum/topic.php?fid=16&fpage=228&tid=1348665]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 303ms |
| total: | 438ms |

| 0 / 0 |
