Witam,
mam do rozwiązania pewien problem, krótko opiszę o co chodzi:
- mam 3 serwisy pod 3 różnymi domenami: s1.pl, s2.pl, s3.pl
- czas zalogowania na różnych serwisach ma być różny (np. 6h, 12h, 1h - dwa serwisy z newsami i jeden aukcyjny)
- wszystkie serwisy stoją na jednym serwerze, na tym samym koncie (nawet pliki silnika są te same, ale to chyba żadna różnica)
- serwisy korzystają z jednej bazy danych, ale pobierają po prostu różne informacje
- system logowania każdego serwisu na sesjach (id sesji w cookies)
- systemy będą do siebie wzajemnie linkowały (np. przekazując w ten sposób id sesji)
Problem: jak zrobić, żeby zalogowanie na jednym z serwisów logowało na pozostałe?
- system sesji PHP zapisuje dane na plikach, czyli teoretycznie przekazanie id sesji w linku załatwiłoby sprawę? Czy istnieje jeszcze podział sesji na domeny? (konto hostingowe jest to samo)
- cookies są niezależne dla każdej domeny, to oczywiste
Mój pomysł:
(np. linkujemy s1 -> s2)
- przekazywanie w linku id sesji
- na s2 robimy session_regenerate_id() (ew. kopiujemy dane zapisane w sesji) i ustawiamy inny czas życia sesji (wymóg) - dzięki temu ustawią się niezależne cookies dla każdego serwisu
- id sesji muszą być zapisane w bazie (taki kolejny wymóg), więc z wylogowaniem ze wszystkich serwisów jednocześnie też nie będzie problemu
Moje pytanie brzmi:
- jak to się ma do bezpieczeństwa?
- czy moje myślenie dąży w dobrą stronę?
- czy w ogóle jest to wykonalne biorąc pod uwagę kwestie zabezpieczeń serwera/przeglądarek?
Z góry dzięki za wszystkie sugestie.