2011-10-15 17 views
8

Chcę mieć dwa serwery, Serwer A i Serwer B. Serwer A wykonuje całe uwierzytelnianie (nazwa użytkownika i hasło). Jeśli użytkownik jest uwierzytelniony na serwerze A, wówczas serwer A wyśle ​​dane POST identyfikatora sesji, adresu IP, useragenta itp. Użytkownika. Serwer B odbierze wszystkie te dane przez SSL i zaufa serwerowi A i da dostęp do użytkownika. Ponadto serwer B akceptuje dane POST z serwera A tylko za pomocą adresu IP serwera.jak bezpieczny jest php curl w ssl/https?

Moje pytanie dotyczy faktu, że dane pocztowe są przesyłane przez curl/ssl, czy można je przechwycić lub skradzić w ruchu? czy haker może zobaczyć identyfikator sesji w postaci zwykłego tekstu (najważniejszy element tutaj)?

Czy jest coś, co mogę zrobić, aby zwiększyć bezpieczeństwo tej metody?

+0

Przeszukuję serwer A jako serwer uwierzytelniania i kilka serwerów podrzędnych jako dostawców usług. Serwer A po prostu uwierzytelni je i wskaże użytkownikowi, gdzie znajduje się aplikacja. Jeśli to ma sens. – user962449

Odpowiedz

10

Nie chcesz tego zaimplementować z PHP, ponieważ można to łatwo osiągnąć za pomocą samych serwerów. Twój serwer Obsługa SSL (there is even hardware for that) może działać jako Central Authentication Service i jako Reverse Proxy na Serwer B. Jest to typowa konfiguracja do podziału odpowiedzialności między serwerami. Zbadaj te tematy.

Można wybierać spośród różnych rozwiązań tego problemu, począwszy od darmowego rozwiązania jak nginx as a reverse proxy lub commercial solutions like IBM's WebSEAL itp

I tak, w przypadku korzystania z protokołu SSL, to secure enough (w razie wątpliwości, kupić audyt).

W tym przewodniku pytanie to prawdopodobnie lepiej pasuje do serwera serverfault.com.

+0

co oznacza dokładnie? – user962449

+2

co oznacza, że ​​powinieneś pominąć pomysł zrobienia tego z PHP i zbadania tematów powiązanych w mojej odpowiedzi. – Gordon

+0

Co jest nie tak z moją konfiguracją? Spojrzałem na nginx i nie sądzę, że zapewnia on jakiekolwiek funkcje SSO, jest tylko odwrotnym proxy dla Apache i działa jak serwer sieciowy i nic więcej. – user962449