Хранение и доступ к пользовательским данным в нескольких доменах - PullRequest
1 голос
/ 08 марта 2012

Недавно я разрабатывал пользовательский скрипт для отображения боковой панели на всех веб-сайтах, которые мы разрабатываем, чтобы сообщить нам о вещах, таких как сайт, предназначенный для AA, поддержка браузера и т. Д. И т. Д. Это только для внутреннего использования.Я ограничен использованием Classic ASP и jQuery / JavaScript.

Мои проблемы заключаются в следующем:

  • В скором времени будет принят закон, который означает, что лучше всего, чтобы клиенты не зналиобо всех файлах cookie, используемых сценарием.
  • Команда разработчиков баз данных не была бы счастлива, если бы мы создали новую базу данных (или расширили основную) только для этого сценария.
  • Недавно она пришлана мой взгляд, максимальное количество файлов cookie на домен составляет около 50 для большинства браузеров;учитывая, что я думал о хранении данных для каждого сайта, для каждого сервера или для всех серверов, я почти уверен, что в конечном итоге потребуется только более 50 файлов cookie для этого сценария.
  • Я слышалчто в HTML 5 есть средства «мини-базы данных», однако большинство наших веб-сайтов работают на HTML 4, поэтому это не вариант.
  • Если бы мы пошли по маршруту базы данных, мы бы не смоглииспользовать одну базу данных - это будет одна база данных на сервер.Я считаю, что синхронизация будет очень трудной, даже если использовать одну страницу для синхронизации всех серверов с использованием множества iFrames (я верю, хотя и не уверен на 100%, что, если пользователь уходит со страницы преждевременно, любые iFrames прекращают свой запрос, поэтому данные могут небыть обновленным - но не стесняйтесь исправлять меня, если я ошибаюсь).
  • Данные должны храниться постоянно.

Мы настроили следующим образом (очень упрощенное представление):

  • abcom (сервер 1, собственный домен)
  • bbcom (сервер 2, собственный домен)
  • cbcom (сервер 3, собственный домен)
  • dbcom (сервер 4, собственный домен)
  • jobs.a.com (маска URL)
  • careers.b.com (маска URL)
  • emcom (сервер 1, собственный домен)
  • fmcom (сервер 2, собственный домен)
  • gmcom (сервер 3, собственный домен)
  • hmcom (сервер 4, собственный домен)

Исходя из вышеизложенного, есть ли у кого-нибудь предложения о том, как лучше синхронизировать данные и хранить столько, сколько нам нужно, для каждого пользователя?является?Обратите внимание, что в идеале это необходимо для работы с GreaseMonkey в Firefox, Chrome, Opera и Trixie в IE (6-9).IE 6-7 не являются абсолютными необходимостями, но предпочтительнее.

1 Ответ

1 голос
/ 08 марта 2012

Если он должен быть постоянным, и вы не хотите, чтобы клиенты могли видеть, что вы храните информацию, то о хранении на стороне клиента не может быть и речи. Должен храниться на стороне сервера ..

Ао, что вам нужно:

  1. Способ уникальной идентификации пользователей между доменами.
  2. Серверное хранилище какого-то типа

Первое, что вы можете сделать, используя сторонние куки (например, Google и Facebook, чтобы отслеживать вас на нескольких доменах). На каждом сайте есть ссылка (iframe 0x0px, маленькая закладка или что-то еще), которая вызывает сервис на сервере отслеживания. При первом посещении сайта пользователем устанавливается долгоживущий файл cookie. Файл cookie будет отправляться на сервер отслеживания каждый раз, таким образом, уникально идентифицируя вашего пользователя. Чтобы это работало, в браузере должны быть включены сторонние файлы cookie.

Второй должен быть какой-то базой данных или файлом. Я бы сказал, что если вы не можете использовать базу данных, создайте службу на одном из компьютеров (сервер отслеживания) и разрешите ему записать некоторую информацию на диск. Это плохое решение, так как файлы трудно запрашивать.

...