Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > сикюрность в JS


Автор: DimaSiK 24.2.2010, 17:16
Попытаюсь описать проблему. Есть как всегда сайт,  вернее целая система хранилища данных. Пользователь заходит в свой аккаунт и видит все свои загруженные файлы в виде списка иконок, в общем ничего интересного. Задача состоит в том, что я хочу написать JS библиотеку, с помощью которой пользователь могу бы легко строить тот же список фалов, который он видит при входе в систему через сайт. То есть система такая: пользователь скачивает библиотеку -> пользователь подключает где-то у себя на сайте эту библиотеку -> пользователь видит список файлов у себя на сайте. Так вот вопрос состоит в следующем : каким образом мне обеспечить секюрность, чтобы система знала, что  это верный пользователь и что ему нужно отдавать его контент, а не контент другого пользователя, чтобы определенный пользователь получил именно его данные. Как обеспечить это между JS библиотекой и серверной частью? 

Автор: InvalidProperty 24.2.2010, 17:35
cookie + ajax

Автор: ksnk 25.2.2010, 13:08
DimaSiK, JS библиотека подключается в html страничке. Чем это отличается от 
Цитата(DimaSiK @  24.2.2010,  17:16 Найти цитируемый пост)
 Пользователь заходит в свой аккаунт и видит ... 

?
Начать нужно с описания как должна выглядеть предлагаемая библиотека, куда встраивается, где работает...

Автор: DimaSiK 25.2.2010, 13:21
Реализую в виде jQuery плагина. Встраивается в страницу стандартным путем для всех jQuery плагинов.

Автор: ksnk 26.2.2010, 01:33
Угу...
как сама система узнает, что это адекватный пользователь? Библиотека, стандартным образом подключенная, запросит логин пароль? после логина-пароля страничка будет перегружена? Можно ли позволить юзеру открыть дополнительные вкладки-окна с тем-же аккаунтом, или каждое новое окно будет новым юзером? Можно ли позволить юзеру отключить напрочь JavaScript и сохранять ли при этом работоспособность системе?

при некоторых комбинациях ответов получится авторизация на куках, при некоторых можно отдельно изращатся...

Автор: DimaSiK 26.2.2010, 09:11
Понимаешь в чем дело. Пользователь добавляет этот плагин себе на страницу и таким образом хочет открыть для всех все свои файлы, чтобы ими могли пользоваться и скачивать. Реализовывать на куках в таком случае вряд ли можно. Плагин как бы является шлюзом в данном случае. Через этот плагин пользователь как бы расшаривает для всех остальных свои данные. И проблема заключается в том, чтобы исключить возможность смотреть файлы пользователя если ты не находишься на сайте пользователя, а просто взял скопировал себе плагин у истановил себе на страницу. Надеюсь ты понял, что я тут наворотил?

Автор: Любитель 27.2.2010, 01:39
Если тебе нужна действительно надёжная авторизация - то очевидно что данные должна запрашиваться на сервер-сайд, там уж не страшно хранить авторизационные данные (ну и всегда можно будет использовать SSL для передачи для полного счастья).

Без серверного кода на стороне клиентов - никак иначе не сделаешь (само собой, что реквест-хосту, при запросе из тега script и т. д. мы доверять не собираемся).

Автор: ksnk 27.2.2010, 20:49
Цитата(DimaSiK @  26.2.2010,  09:11 Найти цитируемый пост)
Надеюсь ты понял, что я тут наворотил?

Неа... smile Юзер завел себе страничку, напихал туда ссылок (в необходимости отдельной JS библиотеки для такого я не очень уверен ). Ссылки прямые на файлы на сервере. Так?

Возможно, хочется позволить всем юзерам качать файлы хозяина странички, тогда и только тогда, когда  этот самый "хозяин" на свое страничке разместил таки нужную библиотеку?

в этом случае все относительно просто.
В момент старта библиотечка должна послать на сервер запрос аjax'ом - "страничко есть", получить от сервера куки (сессию?) и все. Все запрошенные файлы будут сопровождатся этими куками и соответственно разрешатся для скачки. при устаревании сессии - все разрешения сбрасываются. Как такое решается на конкретных примерах - ищи по слову "антилич".


Автор: Любитель 27.2.2010, 21:26
Цитата(ksnk @  27.2.2010,  20:49 Найти цитируемый пост)
Неа... smile Юзер завел себе страничку, напихал туда ссылок (в необходимости отдельной JS библиотеки для такого я не очень уверен ). Ссылки прямые на файлы на сервере. Так?

Я понял так, что автор хочет, чтобы клиенты могли на своих сайтах сделать нечто, что будет отображать информацию некую о пользователе с сайта автора. Т. е. клиент загрузил файл на сайте автора - автоматом на его сайте показался этот файл в списке. Но при этом хочется, чтобы нельзя было "скопипастить" этот код, для отображения на других сайтах.

При такой постановке задачи всё очевидно - должен быть сервис, возвращающий нужные данные по пользователю и поддерживающий авторизацию.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)